Guten Tag,
Ich hab leider ein kleines Problem, bei der Verschlüsselung von einem
Unicode string.
habe aus dem Post
Delphi-Praxis
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!