![]() |
DEC 5.2 - Unicode string Verschlüselung unter Delphi 2009
Guten Tag,
Ich hab leider ein kleines Problem, bei der Verschlüsselung von einem Unicode string. habe aus dem Post ![]() von Herrn Hagen den Code genommen.
Delphi-Quellcode:
class function TCrypt.Encode(const Key: String; const Text: String): String;
var Salt: Binary; begin with TCipher_Rijndael.Create do try Mode := cmCBCx; Salt := RandomBinary(16); Init(THash_SHA1.KDFx(Key, Salt, Context.KeySize)); Result := TFormat_MIME64.Encode(Salt + EncodeBinary(Text)); finally Free; end; end; class function TCrypt.Decode(const Key: String; const Text: String): String; var Data: Binary; begin with TCipher_Rijndael.Create do try Mode := cmCBCx; Data := TFormat_MIME64.Decode(Text); Init(THash_SHA1.KDFx(Key, Copy(Data, 0, 16), Context.KeySize)); Result := DecodeBinary(Copy(Data, 17, MaxInt)); finally Free; ProtectBinary(Data); end; end; so einfache Texte wie 'Das ist ein Test' oder '12341234asdfgsdg' ist kein Problem zu ver- bzw. entschlüsseln jedoch hab ich dann versucht den Text 'Alpha' auf griechisch (Αλπηα) zu verschlüsseln und bei meinem Test-Programm bekomm ich dann nach der Entschlüsselung folgenden string: '??p?a' Noch zu meinem TestProgramm: Ich geb in einem Edit meinen Text ein den ich entschlüsseln will. verschlüssel dann diesen und geb das Resultat in ein anderes Edit aus. für das Entschlüsseln zieh ich dann quasi den Text vom 2ten Edit heran. Ich hoff ihr könnt mir hier weiterhelfen. was mach ich falsch bzw. was müsste ich machen, damit ich auch griechische Zeichen verschlüsseln/entschlüsseln kann. Danke schon mal im Voraus für eure Hilfe! |
Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200
Hallo,
erstmal herzlich Willkommen in der DP! :party: Warum nutzt Du nicht einfach mein Beispiel was der DEC 5.2 beiliegt (Example.txt im Hauptverzeichnis aus dem Zip)? Gruß, Assertor |
Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200
Sind EncodeBinary und DecodeBinary (auch) als Unicode- oder nur als Ansi-Versionen verfügbar,
bzw. meckert Delphi irgendwo über irgendwas vonwegen Stringumwandlungen? Ich vermute jetzt einfach mal, daß diese Funktionen nur als Ansi existieren, welches natürlich für das Wegfallen von Informationen des Unicodestrings sorgen würden. |
Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200
dankeschön :)
ja mit dem Beispiel funktioniert es. vielen Dank für die schnelle Rückmeldung. |
Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200
Zitat:
Gruß, Assertor :dp: |
Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200
Hab inzwischen auch mal reingesehn:
EncodeBinary und DecodeBinary arbeiten nur mit dem Typ "Binary", welcher als AnsiString, bzw. einem RawByteString (welcher auch einem AnsiString entspricht) deklariert und für "binäre" Daten gedacht ist. Tja und bei String/UnicodeString > Binary/AnsiString > String/UnicodeString müssen zwangsweise Unicodeinformationen verloren gehn. Allerdingt gibt der Compiler bei sowas standardmäßig eine Warnung aus. :gruebel: |
Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200
Hi himitsu,
wollte Deinen Post nicht übergehen, sondern für den TE abkürzen :) Zitat:
Gruß, Assertor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz