Wie zu verwenden DBMS_CRYPTO.encrypt-Funktion in oracle
Möchte ich zum verschlüsseln der Passwort-Spalte in der Datenbank und ich bin versucht, encrypt-Funktion vorhanden innen DBMS_CRYPTO
- Paket (gegeben haben ausführen Zugriff aus dem sys-account für den aktuellen Benutzer), aber ich erhalte die folgende Fehlermeldung.
Bitte geben Sie mir einige Beispiele, wie diese Funktion zu verwenden:
select DBMS_CRYPTO.encrypt('12345', dbms_crypto.DES_CBC_PKCS5, 'A1') from dual;
Fehler:
ORA-06553: PLS-221: 'DES_CBC_PKCS5' ist nicht ein Verfahren oder undefiniert ist
06553. 00000 - "PLS-%s: %s"
InformationsquelleAutor ITQuest | 2015-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die ständige dbms_crypto.DES_CBC_PKCS5 ist referenceble auf PL/SQL-nur - nicht von SQL.
Müssen Sie ersetzen Sie es mit literal mit dem Wert in der SELECT-Anweisung.
Um den Wert verwenden PL/SQL-block
.
Müssen Sie auch einen längeren Schlüssel
Die src-parameter muss gegossen werden, um RAW. Ich updateted Beispiel.
Danke. Es funktioniert jetzt.
Bitte sagen Sie, wie zu entschlüsseln, wie gut. Dies ist, was ich bisher ausprobiert habe. Ich verschlüsselt, wie u sagte: wählen Sie DBMS_CRYPTO.verschlüsseln(UTL_RAW.CAST_TO_RAW ('ABCDEFGH12345'), 4353, UTL_RAW.CAST_TO_RAW ('A1A2A3A4A5A6CAFE')) from dual; (Output: 80AA4DEA59B77C433A2142AE9CDD235A). Jetzt versuche ich zu entschlüsseln, um den tatsächlichen Wert: wählen Sie DBMS_CRYPTO.entschlüsseln('80AA4DEA59B77C433A2142AE9CDD235A', 4353, UTL_RAW.CAST_TO_RAW ('A1A2A3A4A5A6CAFE')) from dual; Aber ich bin immer Ergebnis als 41424344454647483132333435
jetzt funktioniert es. Verwendet UTL_RAW.CAST_TO_VARCHAR2 und bekam den tatsächlichen Wert
InformationsquelleAutor Marmite Bomber
Die Antwort oben ist gut, ich fügen Sie einfach einige Informationen über 4353. Ich sah in dieser Anfrage verwendet und ich bemerkte, dieser Wert ist nicht wirklich verstanden.
4353 ist ein neben drei Informationen über Verschlüsselung verwendet (des, aes und so weiter), block cipher mode of operation (ecb oder cbc) und Polsterung-Modus.
So, 4353 steht für 1 (des -) + cbc-Modus (256) + pkcs5 padding (4096)
Wenn Sie es vorziehen aes-256, müssen Sie 4356
4358 steht für aes 128
und so weiter.
Die Oracle-Seite, die eine Beschreibung der verschiedenen Parameter ist hier.
Hoffe, dass dies zusätzliche Informationen, die allen hilft besser zu verstehen, DBMS_CRYPTO.
InformationsquelleAutor Plaute