Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Verschlüsselungsalgorithmus unicodefähig machen (kyrillische Buchstaben) (https://www.delphipraxis.net/202570-verschluesselungsalgorithmus-unicodefaehig-machen-kyrillische-buchstaben.html)

DieDolly 19. Nov 2019 08:39

AW: Verschlüsselungsalgorithmus unicodefähig machen (kyrillische Buchstaben)
 
Zitat:

Zitat von DeddyH (Beitrag 1451533)
Was hast Du gegen Base64? Zumindest ich kann das nicht ohne Decoding lesen.

Base64 erkennt man sehr schnell an den letzten 1 bis 2 Zeichen einer Zeichenkette.

Zitat:

Zitat von Frühlingsrolle (Beitrag 1451536)
Ich kann dir die XTEA-Verschlüsselung anbieten. Sie funktioniert mit beliebigen Zeichensätzen und kann über Texte hinaus auch beliebige Dateien(inhalte) verschlüsseln.
So wird aus Доброе утро z.B. I.U㶌Ïá'ÿgÖ’Í9ˆ» ®Vâktñ, abhängig vom Schlüssel:

Kann man damit auch Strings verschlüsseln und entschlüsseln? Wofür ist die private-Variable FEncrypt: Boolean; gut?
Das passende PHP-Gegenstück habe ich hier auch schon gefunden. https://www.php-einfach.de/diverses/...-xtea/#ausgabe
Ich hoffe nur, dass dein Code oben Strings verschlüsseln kann statt Dateien :(

Der hier kann Strings aber deiner ist bestimmt besser weil in dem da unten steht AnsiString statt String. Und das Ergebnis ist ein anderes als das von PHP oben.
https://stackoverflow.com/questions/...98521#40298521

generic 19. Nov 2019 10:18

AW: Verschlüsselungsalgorithmus unicodefähig machen (kyrillische Buchstaben)
 
Wenn du mit Delphi und PHP gleichermaßen verschlüsseln willst, dann nimm die OpenSSL-lib.
Die gibt es in beiden Systemen.

libsodium kannst du auch verwenden, die gibt es ebenfalls für Delphi und PHP.

Was du nicht machen solltest, deine eigene Verschlüsselung!
Meist endet das in Verschusselung.

DieDolly 19. Nov 2019 12:11

AW: Verschlüsselungsalgorithmus unicodefähig machen (kyrillische Buchstaben)
 
@Frühlingsrolle
könnte man diese String-Funktion vielleicht so einbauen?
Delphi-Quellcode:
procedure StringToStream(aStream: TStream; const aString: AnsiString);
begin
 aStream.Write(PAnsiChar(AString)^, Length(AString));
end;

procedure TfrXTEA.EncryptString(const Str: string);
begin
  FIsFromFile := false;
  if Assigned(FStream) then
    FStream.Free;
  StringToStream(FStream, Str);
end;

Über OpenSSL finde ich zu dem Thema nicht viel oder ich suche falsch.
Hier habe ich zwar was gefunden, aber da muss man Streams übergeben statt Strings.
Außerdem braucht man hier ein Zertifikat oder so wenn ich das richtig sehe.

Geht das nicht einfacher? Einfach nur String rein, String raus?

OpenSSL enc -base64 -aes256 -in text.plain -out text.aes256 -k secure
Delphi-Quellcode:
var
  EncUtil :TEncUtil;
begin
  EncUtil := TEncUtil.Create;
  try
    EncUtil.UseBase64 := True;
    EncUtil.Passphrase := 'secure';
    EncUtil.Cipher := 'AES-256';
    EncUtil.Encrypt('text.plain', 'text.aes256');
  finally
    EncUtil.Free;
  end;
end;

Würde es hier reichen einen TStringStream zu übergeben?
https://github.com/lminuti/Delphi-OpenSSL

Ich habe auch die Units von Gammatester. Kennt sich damit jemand aus?

Ich glaube am liebsten wäre es mir, wenn die von mir eingangs erwähnten Zeilen mehrere Zeichensätze abdecken könnten.
OpenSSL ist viel zu kompliziert, gammatesters Funktionen auch.

DieDolly 19. Nov 2019 12:32

AW: Verschlüsselungsalgorithmus unicodefähig machen (kyrillische Buchstaben)
 
Ich wäre dir sehr dankbar dafür. Und Bbommel sicherlich auch, da sie oder er gerade ein ähnliches Problem hat.

generic 19. Nov 2019 15:04

AW: Verschlüsselungsalgorithmus unicodefähig machen (kyrillische Buchstaben)
 
Ein Tipp habe ich noch. Du musst unbedingt auf die Encodings der Texte/Passwörter/Schlüssel achten.

Delphi benutzt WideString als UCS bzw. UTF-16 (ist nicht das gleiche! - aber jetzt erstmal einfach erklären)

PHP nutzt gar nichts. d.h. das ist etwas von der Weboberfläche abhängig, was der Browser/Webseite für ein Encoding vorgibt. Üblicherweise wird im Web UTF-8 genommen.

DieDolly 19. Nov 2019 18:29

AW: Verschlüsselungsalgorithmus unicodefähig machen (kyrillische Buchstaben)
 
Kein Problem, einen Versuch war es wert.
Ich habe meine Funktionen jetzt so umgeschrieben, dass die Eingabe (Data) erst in Base64 umgewandelt wird und anschließend wird erst verschlüsselt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz