Anmelden

View Full Version : encrypt und decrypt mit SQL



dschroeder
20-11-18, 09:01
Hallo,
ich komme mit einem SQL-Problem nicht weiter. Ich möchte einen String verschlüsseln (das klappt) und auch wieder entschlüsseln (das klappt leider nicht).

Da SQL die entsprechenden Funktionen bereits mitbringt, möchte ich das im embedded SQL machen. Um das vorher zu testen, habe ich im interaktiven SQL einen Test gemacht. Der klappt jedoch nicht:


--Variable erzeugen, die den verschlüsselten String enthält:
drop variable daten;
create variable daten varchar(100);

-- Den String "Testdaten" verschlüsseln. Das Passwort dafür ist "key12345":
set daten = encrypt_tdes('Testdaten', 'key12345');

-- Den Inhalt von daten anzeigen lassen:
values daten;

-- Jetzt den in daten enthaltenen String wieder entschlüsseln:
select decrypt_char(daten, 'key12345') from sysdummy1;

-- Der Fehlercode ist [SQL0171] Argument 01 der Funktion DECRYPT_CHAR ungültig.



Klappt das bei jemandem von euch? Hat jemand eine Idee?

Dieter

prsbrc
20-11-18, 09:30
Hallo.

Lt. Doku muss beim DECRYPT das erste Argument in BINARY oder VARBINARY sein:
https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/sqlref/src/tpc/db2z_bif_decrypt.html


Exec SQL SET :String = DECRYPT_CHAR(BINARY(:String), 'Key01815');


greets

dschroeder
20-11-18, 09:41
Genau das habe ich gesucht. Ich habe das in der Doku auch gelesen. Aber ich dachte, dass ich eine Variable mit binärem Typ benötigen würde. Mit der binary Funktion ist das natürlich viel einfacher.

Herzlichen Dank.

Dieter