Autor Beitrag
Luisk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Fr 06.03.09 23:48 
Hallo,
ich möchte einen Text ('Hallo') verschlüsseln und wieder entschlüsseln.
Ich ging davon aus, dass ich die Verschlüsselung über
ausblenden Delphi-Quelltext
1:
IdBase64Encoder1.SetKey('781079');					

bewerkstelligen kann.
Zu meinem Erstaunen erhalte ich mit einem falschen Dekoderschlüssel
ausblenden Delphi-Quelltext
1:
IdBase64Decoder1.SetKey('381049');					

den richtign verschlüsselten Text zurück.

Wo liegt mein Fehler?
Danke für hilfreiche Tipps
Luis


hier der TestCode:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button1Click(Sender: TObject);
var erg:string;
begin
   IdBase64Encoder1.SetKey('781079');
   IdBase64Encoder1.Reset;
   erg:=IdBase64Encoder1.CodeString('Hallo');
   erg:=IdBase64Encoder1.CompletedInput;
   Button1.Caption:=erg;
end;

procedure TForm1.Button2Click(Sender: TObject);
var ls:string;
begin
   IdBase64Decoder1.SetKey('381049');
   IdBase64Decoder1.Reset();
   ls:=copy(Button1.Caption,3,length(Button1.Caption)-2);
   Panel1.Caption:=ls;
   IdBase64Decoder1.CodeString(ls);
   Button2.Caption:=IdBase64Decoder1.CompletedInput();
end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 06.03.09 23:52 
Moin!

Ich kenne diese Komponente nicht, kann also nix zu dieser Methode .SetKey() sagen, aber Base64 ist keine Verschlüsselung, sondern eine Transkodierung. :idea: Hier wird nur der Wertebereich von einer 8-Bit-Bytes-Folge auf 6 signifikante Bits reduziert (z.B. für EMail-Versand von Binärdaten). :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luisk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Sa 07.03.09 00:30 
Danke,
ok, dann nehm ich IdCoderMD51
Verschlüsseln kann ich :
SetKey('781079') Folge: 'Hallo' = '0;®±n×'#4'ŒqËà'#$E'¢È«·±�'
SetKey('6381079') Folge: 'Hallo' = '0;®±n×'#4'ŒqËà'#$E'¢È«·±�'

Fragen:
1. Warum erhalte ich bei unerschiedlichem Setkey() die gleichen Ergebnisse
2. Wie kann ich den verschlüsselten String wieder dekodieren ?

Gruß
Luis


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button3Click(Sender: TObject);
var erg:string;
begin
   IdCoderMD51.SetKey('781079');
   IdCoderMD51.Reset;
   erg:=IdCoderMD51.CodeString('Hallo');
   erg:=IdCoderMD51.CompletedInput;
   Button3.Caption:=erg;
end;
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 07.03.09 00:48 
MD5 is afaik keine Verschlüsselung sondern ein Hashalgo. Das heißt es is eine einwegfunktion, einmal verschlüsselt ist es nur noch zu knacken, nicht mehr zu entschlüsseln.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 07.03.09 01:01 
Moin!

RC4 sollte was für dich sein. :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Sa 07.03.09 01:01 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
MD5 is afaik keine Verschlüsselung sondern ein Hashalgo. Das heißt es is eine einwegfunktion, einmal verschlüsselt ist es nur noch zu knacken, nicht mehr zu entschlüsseln.

Positiv.
Warum da für unterschiedliche SetKey jedoch das Gleiche Ergebnis rauskommt.. kA. Dafür müsste man wissen, wofür der Parameter da ist. Hab aber nur Indy 9 installiert, da gibt es noch kein MD5.

_________________
PROGRAMMER: A device for converting coffee into software.
Luisk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Sa 07.03.09 06:15 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:

RC4 sollte was für dich sein. :idea: ;)

Danke, google hat was zu RC4 in Delphi gefunden:
www.delphipraxis.net/topic30830.html
funktioniert :)
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 765
Erhaltene Danke: 130



BeitragVerfasst: Sa 07.03.09 13:15 
Ich kenne leider die verwendete Klasse nicht, aber könnte es sein, dass mit Reset auch der Schlüssel gelöscht wird und die richtige Reihenfolge
  • Reset
  • SetKey
lauten müsste, so dass Du 2* mit einem leeren Schlüssel bzw. mit dem integrierten Salt-Wert verschlüsselst?

ub60