2016-06-22 8 views
1

In meiner Benutzertabelle ist die Spalte Benutzername mit dem PBEWithMD5AndDES-Algorithmus codiert. Jetzt möchte ich etwas wie folgt:Wie entschlüsselt PBEWithMD5AndDES String in Oracle?

WITH TEMP 
AS (SELECT E.UAC_USER_ID AS ID, 
      E.UAC_USER_USERNAME AS USERNAME, 
      E.UAC_USER_FIRSTNAME || ' ' || E.UAC_USER_LASTNAME AS NAME, 
      E.UAC_USER_PERSONELCODE AS PERSONELCODE 
     FROM UAC_USERS E 
     WHERE E.UAC_USER_ISENABLED = 1) 
SELECT * 
FROM TEMP 
WHERE 1 = 1 AND DECODE (USERNAME) = 'admin' 

Gibt es eine eingebettete Funktion in Oracle, die das ausgewählte Feld dekodieren kann?

+0

Haben Sie versucht, Java in Oracle zu verwenden? Überprüfen Sie [Java in Oracle aufrufen] (https://docs.oracle.com/cd/B28359_01/java.11/b31225/chthree.htm) – dcieslak

Antwort

1

Ich kann dir nur Richtung geben, um Problem zu lösen, nicht zu antworten.

Oracle hat Paket dbms_crypto, das kann kann Ihnen helfen.

Siehe Beispiele https://docs.oracle.com/database/121/ARPLS/d_crypto.htm#ARPLS65690 Sie encryption_type finden

encryption_type PLS_INTEGER :=   -- total encryption type 
          DBMS_CRYPTO.ENCRYPT_AES256 
          + DBMS_CRYPTO.CHAIN_CBC -- description in doc 
          + DBMS_CRYPTO.PAD_PKCS5; -- description in doc 

In DBMS_CRYPTO gibt es eine weitere Konstante DBMS_CRYPTO.ENCRYPT_PBE_MD5DES. kann dies theoretisch helfen:

encryption_type PLS_INTEGER :=   -- total encryption type 
           DBMS_CRYPTO.ENCRYPT_PBE_MD5DES 
           + DBMS_CRYPTO.CHAIN_CBC -- description in doc 
           + DBMS_CRYPTO.PAD_PKCS5; -- description in doc 

Aber mit dieser encryption_type in Code, den ich Fehler. Ich versuche auch mehrere Kombinationen und ändere den Code, aber letztendlich gebe ich auf. Kann einer der Gründe dafür sein, dass die Konstante DBMS_CRYPTO.ENCRYPT_PBE_MD5DES in doc nicht beschrieben wird oder ich smt sonst im Beispiel ändern sollte. .