Autor Beitrag
feivel3333
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190

W7
Delphi XE prof
BeitragVerfasst: Di 17.05.05 21:01 
@F.Art: Ich habe eine Komponente aus einem Forum erhalten, die Passworte verschlüsseln kann. Nun ist die Frage, wie sicher die Angelegenheit sein soll. Gemäß Readme-Datei soll man damit keine Bankdaten versenden.

Willst du sie mal testen?

Gruß, Feivel
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Di 17.05.05 21:51 
Mein MD5 gibt unterschiedliches aus auser MD4 und SHA.
Naja egal, ich brauche noch was um ein PW zu verschlüsseln und wieder zu entschlüsseln.
MD5 kann ich nicht entschlüsseln.
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 17.05.05 22:10 
MD5 ist ja auch kein Verschlüsselungsalgorithmus, sondern ein Hashalgorithmus, der Prüfsummen errechnet. Diese Prüfsummen haben "nichts mehr mit dem eigentlichen Passwort zu tun", d.h. die Prüfsumme ist kein verschlüsseltes Äquivalent zum Passwort! Diese Prüfsummen lassen sich auch nicht mehr zurückrechnen, weshalb die Passwortspeicherung als MD5-Hashs sehr sicher ist! Ich würde diese Methode jedem Verschlüsselungsalgorithmus vorziehen.

F.Art hat folgendes geschrieben:
Naja egal, ich brauche noch was um ein PW zu verschlüsseln und wieder zu entschlüsseln.


Warum? Warum musst du das Passwort wieder entschlüsseln? Du kannst doch bei einem Passwortvergleich einfach die Prüfsumme des eingegebenen Passwortes errechnen und diese dann mit der gespeicherten (Prüufsumme des "gespeicherten Passwortes") Prüfsumme vergleichen. Sind die Prüfsummen gleich, dann sind auch die Passwörter gleich! :)

_________________
Viele Grüße
Jakob
crakos
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Di 17.05.05 22:26 
Ich sachte doch er hatte es noch nicht vestanden :>

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
Gosa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 112



BeitragVerfasst: Di 17.05.05 22:56 
Vielleicht braucht er das Passwort aber in nicht verschlüsselter form um sich damit irgendwo einzulogen...


So kannst du das z.B. machen... ist aber nicht wirklich sicher (aber mann kann noch ganz viel krams da mit rein tun)
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:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
  Function PasswortVerschluesseln(Passwort : string) : string;
  Function PasswortEntschluesseln(Passwort : string) : string;
  Function HexToInt(const S: String): Integer;

Function PasswortVerschluesseln(Passwort : string) : string;
var SchriPass : String;
    Buchstabe : Integer;
    i : integer;
Begin
  i:= 1;
  While i <= length(Passwort) do
  Begin
    Buchstabe := ord(Passwort[i]) + 12;

    SchriPass := SchriPass + inttohex(Buchstabe,2);
    i:= i + 1;
  End;
                   
  result := SchriPass;
End;

Function PasswortEntschluesseln(Passwort : string) : string;
var DeSchriPass : String;
    Buchstabe : String;
    i : integer;
Begin
  i:= 1;
  While i <= length(Passwort) - 1 do
  Begin
    Buchstabe := Passwort[i] + Passwort[i + 1];

    DESchriPass := DeSchriPass + chr(hextoint(Buchstabe) - 12);

    i:= i + 2;
  End;

  result := DeSchriPass;
End;

function HexToInt(const S: String): Integer;
var
 I, Ziffer: Integer;
begin
 Result := 0;
 for I := 1 to length(S) do
 begin
  Case S[I] of
   '0'..'9': Ziffer := Ord(S[I])-Ord('0')+0;
   'A'..'F': Ziffer := Ord(S[I])-Ord('A')+10;
   'a'..'f': Ziffer := Ord(S[I])-Ord('a')+10
   else
    raise EConvertError.Create('Ungültiges Zeichen bei Konversion!');
  end;
  Result := Result*16 + Ziffer;
 end;
end;
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Mi 18.05.05 08:39 
Gosa hat mit seiner Aussage recht.
Wie benutze ich die Funktion nun richtig?
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Mi 18.05.05 09:15 
nochmal ein artikel von mit zum verständis:
patrick hat folgendes geschrieben:

...sowas macht man in der regel über prüfsummen.
am weitesten verbreitet ist der MD5 algo. wobei auch SHA stark im kommen ist.
source hab ich grad keinen da aber es gibt bei torry unmengen von kompunenten die das leisten.

eine prüfsumme ist eine art eineweg-verschlüsselung->sie lässt sich zwar encodieren aber nicht mehr decodierten.
wozu dann das ganze??
ganz einfach: die verschlüsselten daten sind nicht mehr rückführbar
man erstellt eine prüfsumme und speichert diese ab.
ein angreifer kann die prüfsumme zwar sehen aber weis nicht wie das dazugehörige passwort heißt-&gt;nicht decodierbar.

wenn du nun überprüfen willst, ob das passwort stimmt, musst du nur das passwort wieder encodieren und anschließend das ergebnis mit der gespeicherten checksumme vergleichen.

in der regel werden noch zusätzliche daten zu dem passwort hinzugefügt (wie z.b. <passwort&gt;+abc)
damit sich ein angreifer nicht ohne weiteres eine eigene checksumme von einem beliebigen passwort erstellen kann und die gespeicherte einfach durch seine ersetzt


ich hoffe jetzt ist das prüfsummen-prinzip etwas verständlicher

_________________
Patrick
im zweifelsfall immer das richtige tun!!!
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Mi 18.05.05 13:35 
Für alle die es ganze genau wissen wollen - ich hab letztes Semester für die Uni eine Arbeit über Hashalgorithmen geschrieben. Ich hab sie gerade auf meinen Webspace raufgeladen. Man findet sie auf meiner Homepage bei den Tutorials: www.manuel-poeter.de

BTW: MD4 gilt schon seit langen am unsicher, auch MD5 hat eine kleine Schwäche (steht auch in meiner Arbeit), und vor ein paar Monaten oder so ist auch bei der Kryptanalyse von SHA ein Durchbruch gelungen. Ich würde daher am ehesten zu RIPEMD raten...

Gruß, Motzi

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!