Ergebnis 1 bis 2 von 2

Thema: pgcrypto und Sonderzeichen

  1. #1
    klimaschreck ist offline Neuer Benutzer
    Registriert seit
    01.06.2008
    Ort
    Bonn
    Beiträge
    23

    Standard pgcrypto und Sonderzeichen

    Hallo zusammen,

    ich habe eine Postgresql-DB mit UTF-8 Kodierung angelegt. Das Abspeichern von Texten mit Umlauten oder anderen Sonderzeichen klappt auch:

    Code:
    db1=# create table tabelle2 (plaintext text);
    CREATE TABLE
    db1=# insert into tabelle2 (plaintext) values ('Müller');
    INSERT 0 1
    db1=# select * from tabelle2;
     plaintext
    -----------
     Müller
    (1 Zeile)
    Wenn ich nun mit pgcrypto verschlüssel, erhalte ich die Sonderzeichen in einem anderen Format wieder.

    Code:
    db1=# create table tabelle1 (cryptedtext bytea);
    CREATE TABLE
    db1=# insert into tabelle1 (cryptedtext) values (encrypt('Müller', 'password', 'aes'));
    INSERT 0 1
    db=# select * from tabelle1;
                      cryptedtext
    ------------------------------------------------
     ^jH\355\375\256\230\016E\210\366B=\364\220\034
    (1 Zeile)
    db1=# select encode(decrypt(cryptedtext, decode('password', text 'escape'), text 'aes'), text 'escape') as cryptedtext from tabelle1;
      cryptedtext
    ---------------
     M\303\274ller
    (1 Zeile)
    Habt ihr einen Tipp für mich?

  2. #2
    klimaschreck ist offline Neuer Benutzer
    Registriert seit
    01.06.2008
    Ort
    Bonn
    Beiträge
    23

    Standard

    Ich meine jetzt den Grund gefunden zu haben. Sonderzeichen werden im UTF-8 mit Backslash und einer dreistelligen Zahl kodiert. Beim Speichern in der Datenbank wird noch ein weiterer Backslash hinzugefügt. Beim Auslesen werden die beiden Backslashs als Backslash interpretiert und die nachfolgende dreistellige Zahl als drei einzelne Ziffern.

    Ich glaube, ich kann es nur so lösen, indem ich die Sonderzeichen vermeide, also einen base64-String erzeuge und ihn dann abspeichere.

    Ich dachte zuerst, vor dem Speichern noch encode('Müller', 'base64') aufzurufen. Aber das bringt leider keine Änderung.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum