![]() |
Und wieder ne Frage zu Passwort Verschlüsselung
aloha...
ich hab mich hier mal im forum nach möglichkeiten einer passwort verschlüsselung umgesehen und hab auch einiges gefunden... wie z.b. das man passwörter mit MD5 / SHA / 3DES / AES oder über diverse kompos dcpcrypt verschlüsseln kann... leider kann ich damit nichts anfangen, bzw. weiß nicht wie ich das anwenden muss in einem programm... vielleicht könnt ihr mir ja weiterhelfen... mein ziel ist es passwörter in die z.b. in einem tedit feld eingegeben werden verschlüsselt in einer db (MySQL) oder vielleicht auch in einem .ini File zu hinterlegen... |
Re: Und wieder ne Frage zu Passwort Verschlüsselung
Zuerst einmal: Verschlüsselt oder Gehasht?
|
Re: Und wieder ne Frage zu Passwort Verschlüsselung
Ich schätze er meint Verschlüsselt.
Wenn es dir nicht um Geschwindigkeit geht, ist es "Fast" egal welches Verschlüsselungsverfahren du nimmst. ( Es gäbe da übrigens auch noch ein ![]() Wenn du es via Hash machst machst must du dir halt ne Haschfunciton speichern, je nachdem wie Clever oder auch nicht deine Function ist wären dann deine Passwörter leicht zu knacken. Ein Beispiel : Deine Hashfunction sei :
Delphi-Quellcode:
dann würden die Passwörter "Hallo Welt" und "Welt Hallo" beide den selben integer geben.Function hash(PW:String):Integer; var erg,x:Integer; begin erg:=0; for x:= 1 to length(pw) do erg:= erg + ord (pw[x]); // Keine Ahnung ob das ord oder odd ist ich COde hier grad blind ;) result := erg; end; Wenn du es mit ner verschlüsselnung machst dann machst du im Prinzip das was ein Zahlen Kreuzworträtsel macht. Du must dann Ebenfalls Zeichenweise durch deinen String gehen und jedem Zeichen einen neuen Wert zuweisen. Du kannst auch mehrere Zeichen Zusammenfassen. Dazu würde sich z.b. anbieten immer 2 Char als 1 Integer auffasssen mit z.b.
Delphi-Quellcode:
dann verschlüsseln
function Kompound( c1,c2:Char):integer;
begin result:= ord(c1) + 1000* ord(c2); // Wieder das selbe Problem von oben , ord oder odd ? end; und beim Entschlüsseln eben dann wieder
Delphi-Quellcode:
Ich hoffe das hilft dir bei deiner Entscheidung ;)
Type T2Char = Record
C1:Char; c2:Char; end; Function UnKompound(Value:integer):T2char; var erg: T2char; begin erg.c1 := chr(Value mod 1000); erg.c2 := chr(Value Div 1000); result:=erg; end; |
Re: Und wieder ne Frage zu Passwort Verschlüsselung
Zitat:
@corpsman danke schon mal für deine beispiele, ich denk mal das sie mir schon weiterhelfen werden ;) wie könnte ich denn jetzt dann aber verschlüsselungen wie md5 / sha / 3des / aes .... verwenden... hat mir hierfür vielleicht noch jemand ein bsp.? |
Re: Und wieder ne Frage zu Passwort Verschlüsselung
Ich kanns dir nicht 100% ig sagen, aber ich denke mal das die anderen Verfahren auch so sind wie RSA
Sprich sie verschlüsseln Integer -> Integer Also must du nur überlegen wie du dir die Strings in Integer Bastelst z.b. mit Kompound da kannst du auch Locker 3 oder 4 Char in eine Integer packen. und dann eben wieder Rückwärts. Zur not Lade dir das RSa Proggy runter da ist der Source dabei.das Sample Zeigt wie du die Integer -> Integer verschlüsselung machst. |
Re: Und wieder ne Frage zu Passwort Verschlüsselung
Also, es gibt 2 Verfahren die du benutzten kannst:
1. Hash (SHA, SHA1, MD4, MD5, Haval, RIPE-MD, ...) Du erstellst den Hashwert deines Passwortes und speicherst diesen in der Datenbank ab. Dabei solltest du wissen, das es zwar extrem einfach ist den Hashwert deines Passwortes zu errechnen, jedoch extrem schwer sein sollte von einem gegebenen Hashwert wieder auf das Passwort zu schließen. Deswegen kannst du das Verfahren nur benutzten, wenn du ein Passwort überprüfen willst. Dann errechnest du den Hashwert des eingegebenen Passworts und vergleichst diesen mit dem gespeicherten. Ein Beispiel mit der ![]()
Delphi-Quellcode:
2. Verschlüsselung (Des, Blowfish, Twofish, IDEA, ...)
MD5Print(MD5String(Passwort));
Wenn du das abgespeicherte Passwort irgendwann wieder wissen willst, musst du es verschlüsseln. So wirst du es wiederherstellen können. Das ganze wird dich jedoch vor das Problem stellen, dass du ein weiteres Passwort benötigst, mit dem du deine Passwörter verschlüsselst. Beispiel für die Verschlüsselung ist hier die ![]() |
Re: Und wieder ne Frage zu Passwort Verschlüsselung
hmm ok, dann is das hashen nicht wirklich was für mich ^^ bzw. ich könnte es wahrscheinlich nur für eine einfache login routine verwenden...
hmm dann hab ich ja jetzt im prinzip nur noch die möglichkeit das passwort zu verschlüsseln über die bereits gängigen methoden, oder ich lass mir selber nen algorhytmus einfallen in dem ich ein passwort zerglaube und verschlüssel :lol: |
Re: Und wieder ne Frage zu Passwort Verschlüsselung
Was genau willst du denn mit dem abgespeicherten Passwort machen?
|
Re: Und wieder ne Frage zu Passwort Verschlüsselung
ich will mich persönlich ein prog. schreiben in dem ich meine pw's abspeichern kann...
bzw. evtl. sollen das prog. auch mal andere leute verwenden können... für denn login in das eigentliche prog. könnte ich das mit dem hash machen... da ich dann die anderen pw's aber anzeigen möchte, müsste ich diese verschlüsseln, da lt. denn obigen beiträgen, gehashte pw's nicht so einfach wieder anzuzeigen gehen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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-2025 by Thomas Breitkreuz