![]() |
Re: RC4 Implementierung - Problem mit längeren Texten
vielen dank, das hat geholfen.
Jetzt klappt das ganze wie gewünscht. (abgesehen vom base64-längen-nebeneffekt) |
Re: RC4 Implementierung - Problem mit längeren Texten
Nja, Base64 ist immerhin noch kürzer als Hexadezimal :angel2:
Base64 nutzt effektiv nur 5 Bit pro Zeichen, in ganzen Bit könnte man locker 7 verwenden und alles um 32 hochsetzen ... quasi Base128 Effektiv kann man aber in Ansi 256-32 Werte pro Zeichen codieren und innerhalb des ASCII-Bereichs 128-32 Werte (da es dort nur 7 Bit gibt) Bei einer größeren Packungsdichte würden dann aber die Berechnungen etwas aufwändiger und die zusammenhängenden Blöcke größer. > Base64 = 3 Byte in 4 Zeichen = 33% größer |
Re: RC4 Implementierung - Problem mit längeren Texten
Delphi-Quellcode:
Wie schon himitsu bereit erwähnt hat, wird ein String, das #0 enthält, nicht ganz angezeit (0 wird als Nullterminierung interpretiert)
rc4init(memo1.Text);
text:=memo2.Text; textneu:=rc4encdec(text); memo2.Text:=textneu; Kannst gern ausprobieren, falls du es nicht glaubst / verstehst:
Delphi-Quellcode:
Ich würd das Problem einfach so lösen, dass ich mir das ganze als Hex anzeigen lasse:
var x:String;
x := 'Test'#0'Dies wird nicht gezeigt';
Delphi-Quellcode:
oder, fall ich mal unbedingt den Text nicht durch das Kopfrechnen (Umrechnen von Hex auf Dez. und Ascii Characterdarstellung) erschätzen will, mach ich folgendes -> ich filter einfach alles, was nicht anzeigbar ist:
function StrToHex(Str: String): String;
var i: Integer; begin for i := 1 to Length( Str ) do begin Result := Format( '%s $%x', [Result, ORD( Str[i] ) ] ); if i mod 16 = 0 then Result := Result + #13#10; end; end;
Delphi-Quellcode:
MfG
function FilterBadChars(Str: String; const FilterChar: Char = '.'): String;
var i: Integer; begin Result := Str; for i := 1 to Length(Str) do if ORD(Str[i]) in [0..32, 130..255] then Result[i] := FilterChar; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 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