Thema: Delphi Unicode + BASE64?

Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#42

Re: Unicode + BASE64?

  Alt 26. Aug 2007, 17:56
Hallo.

Zitat von Zacherl:
Kleine Zwischenfrage: Hagens DEC besitzt doch auch eine EncodeBinary Funktion .. kann man der nicht den WideString ohne Weiteres übergeben?
Binary ist nur ein anderes Wort für String. Als Kommentar ist hinterlegt, dass hier binäre Daten rein dürfen.

EncodeBinary nimmt einen binary an und übergibt dann an die Kernfunktionen (AES, BlowFish, ... -> DoEncode), die auch nur "binary" (=string) annehmen.

Bei DecodeBinary ist das genau so. Die Kernfunktionen (DoDecode) geben einen binary zurück.

Man muss also meine Funktionen verwenden, um einen WideString in einen String umzuwandeln, damit dieser verschlüsselt werden kann. Bei der Entschlüsselung würde man dann diesen Schritt wieder rückgängig machen. Und wenn es Probleme gibt, verwendet man einen Hex-String, der nicht-binär ist.

Zitat von Olli:
Ähem, vielleicht guckst du doch nochmal. Das Problem ist, beim String die Compiler-Magic auszutricksen.
Ich weiß leider nicht, was du meinst.

Zitat von Olli:
Ich habe hier niemanden gesehen, der bestritten hat, daß man den AnsiString auch als Puffer benutzen kann.
Ich hab da schon einiges Destruktives empfunden, z.B.:

Zitat von Bernhard Geyer:
Zitat von blackdrake:
Weiß denn niemand, wie ich die Inhalte eines WideStrings vorrübergehend in einen String lagern kann?
Nein, das geht nicht ohne die schon diskutierten Auswirkungen!!!!!!
Zitat von Olli:
Aber man müßte doch dann von dir erwarten können, daß du in der Lage bist den Code so zu variieren, daß es klappt
Ich habe mir alles selbst angeeignet und bin kein Programmierer. Wie soll ich dann wissen, dass man so einen Fetz machen muss? Ich habe diesmal die Idee verfolgt, in WideChar-Schritten zu arbeiten.

Zitat von Olli:
Zitat von blackdrake:
PS: Wäre doch was für die CodeLib, oder?
Lieber nicht. Es sei denn als Schaustück für eine ineffiziente Methode das besagte erreichen zu wollen
Ich find die Funktion genial, weil man damit den Speicherinhalt von WideStrings in Strings und umgekehrt kopieren kann. Wieso soll das nicht nützlich sein? Oder ist der Code unsauber?

Edit: Wie soll man denn ansonsten einen WideString mit einer String-Funktion verschlüsseln, ohne das ganze DEC mit 1,88 MB Pascal-Code umzuschreiben? Niemand hier hat mir die Lösung sagen können.

Zitat von Olli:
Zacherl's Idee klingt für mich übrigens sehr gut.

Length(ws) * sizeof(WideChar) sollte es dann ja tun ...
Was meinst du damit? Ich kann nicht über die ganze Breite den Speicher kopieren, da gibts Probleme. Deswegen war die Lösung ja, WideChar-weiße zu kopieren.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat