| Autor | Beitrag | 
| Hanna Bubiskopf Hält's aus hier
 Beiträge: 14
 
 XP
 D7
 
 | 
Verfasst: So 27.02.05 19:48 
 
Nachdem ich vergeblich gegoogelt habe und nur komplizierte Klassen fand,
deren Nutzung ich sowieso nicht kapiere, habe ich eine Bitte an Euch:
 
 Ich brauche eine RC4-Funktion zum Verschlüsseln von Strings.
 Der Rückgabewert soll ein String sein, der Input soll ein String sein.
 Ich brauche eine RC4-Funktion!
 Bitte keine XOR-Verschlüsselungen. Das war leider das Einzige was ich auf dieser
 Seite fand!
 | 
|  | 
| MrSaint 
          Beiträge: 1033
 Erhaltene Danke: 1
 
 WinXP Pro SP2
 Delphi 6 Prof.
 
 | 
Verfasst: So 27.02.05 20:24 
 
www.freevbcode.com/ShowCode.asp?ID=4398 gibts den Code als VB-Code... Mit ein bisschen Google sollte es dir das Übersetzen ermöglichen... _________________"people knew how to write small, efficient programs [...], a skill that has subsequently been lost" Andrew S. Tanenbaum - Modern Operating Systems
 | 
|  | 
| Hanna Bubiskopf  Hält's aus hier
 Beiträge: 14
 
 XP
 D7
 
 | 
Verfasst: Mo 28.02.05 11:34 
Titel: StrConv in Delphi?
 
Die Funktion hatte ich übrigens schon in VB, bloss wußte ich nicht wie ich
die nach Delphi kriege.
 Nunja ich hab ja schon gesagt, dass ich Anfänger bin.
 
 Wie übersetze ich dann den folgenden VB-Code in Delphi:
 Dim Key() as Byte
 Key() = StrConv(Left$(Password, 256), vbFromUnicode)
 
 Google findet zu "StrConv in Delphi" nix.
 | 
|  | 
| patrick 
          Beiträge: 1481
 
 WIN2k, WIN XP
 D6 Personal, D2005 PE
 
 | 
Verfasst: Mo 28.02.05 12:26 
 
zu der funktion [b]StrConv[b]
 findest du hier was:
www.techonthenet.com...s/string/strconv.htm das delphi äquivalent wäre dann wohl das hier: function StringToWideChar(const Source: string; Dest: PWideChar; DestSize: Integer): PWideChar; diese funktion convertiert einen ANSI (pascal) string in einen unicode string_________________ Patrick
im zweifelsfall immer das richtige tun!!! | 
|  | 
| Hanna Bubiskopf  Hält's aus hier
 Beiträge: 14
 
 XP
 D7
 
 | 
Verfasst: Mo 28.02.05 17:45 
Titel: ich hab das mal probiert, aber es klappt net :-(
 
Also ich scheitere daran, dass es in Delphi keinen Len-Befehl gibt.
Ich habe dann die StrUtils included, aber irgendwie gibt's keine Len()-Funktion.
 Und dann bleiben noch die Fragen offen, wie ich
 diese Funktion korrekt mit Parametern bestücken kann:
 function StringToWideChar(const Source: string; Dest: PWideChar; DestSize: Integer): PWideChar;
 | 
|  | 
| F34r0fTh3D4rk 
          Beiträge: 5284
 Erhaltene Danke: 27
 
 Win Vista (32), Win 7 (64)
 Eclipse, SciTE, Lazarus
 
 | 
Verfasst: Mo 28.02.05 17:47 
 
ist len nicht das gleiche wie length in delphi ? | 
|  | 
| Hanna Bubiskopf  Hält's aus hier
 Beiträge: 14
 
 XP
 D7
 
 | 
Verfasst: Mo 28.02.05 19:29 
Titel: ach mensch, jetzt veratet mir halt mal wie
 
Die Length-Funktion fand ich vorhin schon endlich.
Aber das nützt mir trotzdem abslut nix.
 Ich hänge hier fest.
 Die Funktion braucht dreimal soviel Parameter wie die VB-Funktion.
 Also was muss ich hier reintun in diese Funktion?
 Seit doch mal so nett und lasst mich net hängen!
 function StringToWideChar(const Source: string; Dest: PWideChar; DestSize: Integer): PWideChar;
 | 
|  | 
| MrSaint 
          Beiträge: 1033
 Erhaltene Danke: 1
 
 WinXP Pro SP2
 Delphi 6 Prof.
 
 | 
Verfasst: Mo 28.02.05 19:35 
 
ich hab doch oben schon einen link gepostet. Da ist so eine Funktion in VB, welche nur 2 parameter will. Dann übersetz doch einfach die! _________________"people knew how to write small, efficient programs [...], a skill that has subsequently been lost" Andrew S. Tanenbaum - Modern Operating Systems
 | 
|  | 
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Mo 28.02.05 20:07 
 
In der Code-Lib der Delphipraxis hat es einen Beitrag dazu: www.delphipraxis.net...ml&highlight=rc4 | 
|  | 
| retnyg 
          Beiträge: 2754
 
 SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
 Delphi 5, Delphi 7
 
 | 
Verfasst: Mo 28.02.05 20:59 
 
ich habe mir erlaubt das VB-Beispiel zu übersetzen:
 hier das resultat:
 												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 
 | Function RC4(Expression, Password :String) : string;var RB: array [0..255] of byte;
 X,Y,Z:Longint;
 key:string;
 bytearray: array [0..255] of byte;
 temp: byte;
 l,lp: integer;
 begin
 l:= Length(Expression);
 lp := Length(Password);
 If (lp = 0) or (l = 0) then  Exit;
 If lp > 256 Then  Key := copy(Password, 0, 256) Else Key := Password;
 For X := 0 To 255 do RB[X] := X;
 X :=0;Y:=0;Z:=0;
 For X := 0 To 255 do begin
 Y := (Y + RB[X] + byte(Key[X Mod lp])) Mod 256;
 Temp := RB[X];
 RB[X] := RB[Y];
 RB[Y] := Temp;
 if x < l then byteArray[x] := byte(expression[x+1]);
 end;
 X:=0;Y:=0;Z:=0;
 For X := 0 To l do begin
 Y := (Y + 1) Mod 256;
 Z := (Z + RB[Y]) Mod 256;
 Temp := RB[Y];
 RB[Y] := RB[Z];
 RB[Z] := Temp;
 ByteArray[X] := byte(ByteArray[X]) Xor (RB[(RB[Y] + RB[Z]) Mod 256]);
 end;
 result := '';
 for x := 0 to l - 1  do result := result + chr(ByteArray[x]);
 end;
 |  | 
|  |