![]() |
RC4 Textlänge
Hi!
Ich habe mal die wunderbare RC4 Unit aus der Code-Library ausprobiert und bin auch voll und ganz zufrieden. Es gibt nur ein Problem, nämlich wird bei einem längeren text zwar alles verschlüsselt, aber beim Entschlüsseln fehlen Textteile (hat das eventuell was mit Absätzen zu tun?). Woran könnte das liegen? Vielen Dank. |
Re: RC4 Textlänge
Nachdem man einen lesbaren Text verschlüsselt hat stehen im Resulat binäre Daten. Also auch das Zeichen #0 bzw. Byte = 0. Dieses Zeichen ist bei Strings aber der Null-Terminator, der einen lesbaren String beendet. Wenn du also das Resulat vom RC4 ständig neue Strings zuweist so schneidet die String-RTL diesen String ab. Suche mal nach der RCx Unit, dort wird der Resulat String in das HEX Format umgewandelt, damit kann das nicht mehr passieren.
Gruß Hagen |
Re: RC4 Textlänge
Vielen Dank!
Ich habe zwar die Unit gefunden, die du meinst, aber welcher Teil ist jetzt unbedingt notwendig, um die hexadezimale Umwandlung zu vollziehen? Vielen Dank. |
Re: RC4 Textlänge
Ehrlich gesagt habe ich auch nicht die Lust, ein paar Stunden lang durch den Algorithmus zu steppen, um herauszufinden, wo das hingehört. :wink:
Deshalb wäre ich ganz dankbar, wenn mir jemand helfen könnte. Vielen Dank. |
Re: RC4 Textlänge
Hat denn niemand eine Antwort?
|
Re: RC4 Textlänge
Hi!
Es wäre echt nett, wenn mir jemand bei diesem Problem auf die Sprünge helfen könnte, da es sehr wichtig für mich ist. Vielen Dank. |
Re: RC4 Textlänge
Zitat:
Fakt ist, wie negaH schreibt, daß in der Regel im verschlüsselten Text #0-Zeichen vorkommen: Zitat:
Wir wäre es, wenn Du die ganze Sache (fast) vom Anfang beginnst: Das einfachste ist doch, ohne zusätzliche Hex-Umwandlung den verschlüsselten Memoryblock in eine (binäre) Datei zuschreiben. Wolfgang |
Re: RC4 Textlänge
Das ich keine Lust habe durch den Algorithmus zu steppen liegt allein an dessen Länge.
Denn man muss sich vorstellen, dass, bis man einen #0 Wert gefunden hat, schon einige Zeichen bearbeitet werden müssen. Und das nun von 0 bis 255 und wieder zurück. Da sitzt man ganz schön lange dran. Jetzt aber zu deinem anderen Tipp. Wie genau funktioniert das? Kannst du mir genauere Angaben machen? Vielen Dank. |
Re: RC4 Textlänge
Zitat:
Zitat:
Verschlüsseln (setzt Deine realen Proceduren ein) rc4_int(key, keylen); rc4_encrypt(plaintext, ciphertext, len); assign(f,'name.rc4'); rewrite(f,1); blockwrite(f,ciphertext,len); close(f); Entschlüsseln: rc4_int(key, keylen); assign(f,'name.rc4'); reset(f,1); blockread(f,ciphertext,len); close(f); rc4_decrypt(ciphertext, plaintext, len); |
Re: RC4 Textlänge
Du meintest bestimmt "AssignFile" und "CloseFile", oder?
Wenn ja, dann funktioniert es leider so nicht. Auch hier werden die #0 Bytes berücksichtigt und kürzen somit leider immer noch den Text. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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