Armin: Blowfish, problem beim decrypt, vergleichen

ich verschlüssle mittels Blowfish eine Variable und schreibe sie in die Datenbank. Wenn ich sie wieder entschlüssele müsste sie wieder exakt das gleiche sein wie vor der entschlüsselung.

nur irgendwas ist anderes.

$EntschluesselteDatei=$blowfish->Decrypt($ausgabe->article);

Wenn ich mir die Variable $EntschluesselteDatei mit echo ausgebe kommt inhalt

wenn ich sie vergleiche

if($EntschluesselteDatei=='inhalt')

kommt keine Ausgabe, also denke ich das irgendwas mit dem Inhalt nicht mehr stimmt.

An was kann das liegen?

Armin

  1. Tach!

    Wenn ich mir die Variable $EntschluesselteDatei mit echo ausgebe kommt inhalt

    wenn ich sie vergleiche

    if($EntschluesselteDatei=='inhalt')

    kommt keine Ausgabe, also denke ich das irgendwas mit dem Inhalt nicht mehr stimmt.

    Dann untersuch doch mal den Inhalt genauer. Der einfachste Fall wäre ein Stringlängen-Vergleich. Die Ausgabe mit var_dump() statt echo liefert beispielsweise die Längeninformation. Zudem sieht man Anführungszeichen als Begrenzung des String. Wenn man in die Quelltext-Ansicht des Browsers schaut, sieht man damit Indizien für eventuelle nicht direkt sichtbare Zeichen. Ansonsten kann man die Funktion urlencode() ganz gut für eine Kontrolle missbrauchen, denn die gibt nicht-lateinische Buchstaben als Prozentkodierung zurück. Somit kann man ebenfalls Unterschiede und vor allem unsichtbare Zeichen sehen.

    dedlfix.

  2. Hallo Armin,

    An was kann das liegen?

    Verschlüsselter Text wird in Blöcke unterteilt (bei Blowfish sind es 64 Bit). Wenn der letzte Block nicht groß genug ist, muss er aufgefüllt werden (idR mit Nullbytes). Das nennt sich Padding, das machen die meisten Implementationen automatisch. Beim entschlüsseln musst du diese Bytes am Ende allerdings wieder entfernen. Ich denke, dass das hier nicht geschehen ist.

    LG,
    CK