Autor Beitrag
Hanna Bubiskopf
Hält's aus hier
Beiträge: 14

XP
D7
BeitragVerfasst: So 27.02.05 20: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: So 27.02.05 21: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 Threadstarter
Hält's aus hier
Beiträge: 14

XP
D7
BeitragVerfasst: Mo 28.02.05 12: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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Mo 28.02.05 13: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 Threadstarter
Hält's aus hier
Beiträge: 14

XP
D7
BeitragVerfasst: Mo 28.02.05 18: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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 28.02.05 18:47 
ist len nicht das gleiche wie length in delphi ?
Hanna Bubiskopf Threadstarter
Hält's aus hier
Beiträge: 14

XP
D7
BeitragVerfasst: Mo 28.02.05 20: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Mo 28.02.05 20: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



BeitragVerfasst: Mo 28.02.05 21:07 
In der Code-Lib der Delphipraxis hat es einen Beitrag dazu: www.delphipraxis.net...ml&highlight=rc4
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 28.02.05 21:59 
ich habe mir erlaubt das VB-Beispiel zu übersetzen:
hier das resultat:
ausblenden volle Höhe Delphi-Quelltext
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;
// (C) http://www.freevbcode.com/ShowCode.asp?ID=4398
// pascal adaption by retnyg
var RB: array [0..255of byte;
    X,Y,Z:Longint;
    key:string;
    bytearray: array [0..255of byte;
    temp: byte;
    l,lp: integer;
begin
  l:= Length(Expression);
  lp := Length(Password);
  If (lp = 0or (l = 0then  Exit;
  If lp > 256 Then  Key := copy(Password, 0256Else 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;
//bytearray := expression;
  For X := 0 To l do begin
    Y := (Y + 1Mod 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;