![]() |
Programm zur Verschlüsselung
Hallo.
Ich wollte mal wieder zru Programmiersprache Delphi zurückkehren, nach Ausflügen mit den Programmiersprachen Scheme, C, Java, Prolog, Python, ... Ich bräuchte ine ganz einfache Verschlüsselungssoftware. Die einen String einliest und danach verschlüsselt wieder ausgibt und natürlich auch anders herum. Die Verschlüsselung soll wirklich simpel sein. Man nehme den ASCII-Code im Dezimalcode und zähle einfach den Wert 10 dazu. Leider habe ich der Zeit so einiges an Delphi verlernt und bekomme das einfach nicht zusammengebastelt. Ich würde mich daher freuen, wenn mir einer bei der Erstellung helfen könnte. |
Re: Programm zur Verschlüsselung
Da sollte es schon einiges im Forum geben
extreme einfach:
Delphi-Quellcode:
function Codestr (Text:String; PW:Byte): String;//erzeugt steuerzeichen nur in hexform in ini's schreiben
var s: String; i: Integer; begin If PW > 32 then PW:=32; If PW < 1 then PW:=1; // Kodieren s:=Text; for i:=1 to length(s) do s[i]:=char(PW Xor Ord(s[i])); result := s; end; {Codestr} viel besser RC4: (glaube ist von Hagen)
Delphi-Quellcode:
EDIT: :gruebel: eigentlich hätte ich nur auf die Suche versweisen sollen/müssen ....
function Codestr (Text, PW:String): String;
var x: TRC4Context; str2: string; begin setLength(str2,length(text)); _RC4Init(x,PW); // Init _RC4Code(x, text[1], str2[1], Length(text)); // vers und entchlüsseln FillChar(x, SizeOf(x), 0); // Done // war eigene procedure result := str2; end; procedure _RC4Init(var RC4: TRC4Context; const Key: String); var R,S,T,K: Byte; U,L: Integer; begin L := Length(Key); with RC4 do begin I := 0; J := 0; for S := 0 to 255 do D[S] := S; R := 0; U := 0; for S := 0 to 255 do begin if U < L then K := PByteArray(Key)[U] else K := 0; Inc(U); if U >= L then U := 0; Inc(R, D[S] + K); T := D[S]; D[S] := D[R]; D[R] := T; end; end; end; procedure _RC4Code(var RC4: TRC4Context; const Source; var Dest; Count: Integer); var S: Integer; T: Byte; begin with RC4 do for S := 0 to Count -1 do begin Inc(I); T := D[I]; Inc(J, T); D[I] := D[J]; D[J] := T; Inc(T, D[I]); TByteArray(Dest)[S] := TByteArray(Source)[S] xor D[T]; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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 by Thomas Breitkreuz