AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DEC 5.2 - Unicode string Verschlüselung unter Delphi 2009
Thema durchsuchen
Ansicht
Themen-Optionen

DEC 5.2 - Unicode string Verschlüselung unter Delphi 2009

Ein Thema von Stoni1001 · begonnen am 25. Feb 2010 · letzter Beitrag vom 25. Feb 2010
Antwort Antwort
Stoni1001

Registriert seit: 2. Mär 2007
4 Beiträge
 
#1

DEC 5.2 - Unicode string Verschlüselung unter Delphi 2009

  Alt 25. Feb 2010, 09:52
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!
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#2

Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200

  Alt 25. Feb 2010, 09:55
Hallo,

erstmal herzlich Willkommen in der DP!

Warum nutzt Du nicht einfach mein Beispiel was der DEC 5.2 beiliegt (Example.txt im Hauptverzeichnis aus dem Zip)?

Gruß,
Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#3

Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200

  Alt 25. Feb 2010, 09:59
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Stoni1001

Registriert seit: 2. Mär 2007
4 Beiträge
 
#4

Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200

  Alt 25. Feb 2010, 10:21
dankeschön

ja mit dem Beispiel funktioniert es. vielen Dank für die schnelle Rückmeldung.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#5

Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200

  Alt 25. Feb 2010, 12:12
Zitat von Stoni1001:
dankeschön

ja mit dem Beispiel funktioniert es. vielen Dank für die schnelle Rückmeldung.
Keine Ursache, das freut mich!

Gruß,
Assertor

Frederik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#6

Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200

  Alt 25. Feb 2010, 12:18
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: DEC 5.2 - Unicode string Verschlüselung unter Delphi 200

  Alt 25. Feb 2010, 12:20
Hi himitsu,

wollte Deinen Post nicht übergehen, sondern für den TE abkürzen

Zitat von himitsu:
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.
Absolut Richtig. Irgendwann werd ich die Sache mal als Overload ins DEC 5.3 packen (und ein bisschen Refactoring betreiben), aber im Moment fehlt mir dafür die Zeit...

Gruß,
Assertor
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz