[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.102

    encrypt und decrypt mit SQL

    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:
    Code:
    --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

  2. #2
    Registriert seit
    May 2007
    Beiträge
    295
    Hallo.

    Lt. Doku muss beim DECRYPT das erste Argument in BINARY oder VARBINARY sein:
    https://www.ibm.com/support/knowledg...f_decrypt.html
    Code:
     Exec SQL SET :String = DECRYPT_CHAR(BINARY(:String), 'Key01815');
    greets
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •