![]() |
Passwort "endgültig" verschlüsseln
Hallo allerseits, ich wollte fragen, ob es eine Möglichkeit gibt, ein Passwort entgültig zu verschlüsseln, so dass es nur noch durch Ausprobieren erraten werden kann und mit keinem anderen Algorithmus auf dieser Welt geknackt werden kann?
Ich habe schon die Möglichkeit gefunden, dass das Passwort per XOR mit sich selbst verschlüsselt wird:
Delphi-Quellcode:
aber ich denke einmal das das von jedem Halb-Profi geknackt werden kann, wenn er erst einmal diese Funktion kennt, weil da ja so viele Wiederholungen drin sind. Aber z.B. MSWord kann das ja auch und ich kann dann das Passwort nicht wieder kriegen ohne das ich es (mit oder ohne Software) errate. Das muss doch irgendwie gehen?
function encode(password:string):string;
var i:integer; begin result:=''; for i:=1 to length(password) do result:=result+char(byte(password[i]) xor byte(password[length(password)-i+1])); end; //Überprüfen damit: function pwisok(encodedpassword,edit:string):string; var i:integer; begin result:=length(encodedpassword)=length(edit); if not result then exit; for i:=1 to length(encodedpassword) do result:=result and (encodedpassword[i]=char(byte(edit[i]) xor byte(edit[length(edit)-i+1]))); end; //edit: ich glaube das passt in keine andere Kategorie, aber wenn doch verschiebt es bitte in die richtige. //edit2: nach allden Antworten die sich seit gestern angesammelt haben glaube ich das ich mich doch falsch ausgedrückt habe: Ich will mit dem Passwort keine Daten verschlüsseln sondern ein Logon absichern. Bisher konnte ich das Passwort nur in einer INI-Datei als String speichern. |
Re: Passwort "endgültig" verschlüsseln
Ein sicheres, unkanckbares verfahren?
![]() |
Re: Passwort "endgültig" verschlüsseln
|
Re: Passwort "endgültig" verschlüsseln
Zitat:
Rückrechnen kann man aber das Paßwort nicht. |
Re: Passwort "endgültig" verschlüsseln
Anstelle des DEC kannst Du auch die MD5 Funktion aus diesem
![]() Wenn Du die Unit um diese Funktion erweiterst kannst Du auch den MD5-Hash eines Strings erzeugen:
Delphi-Quellcode:
function MD5_HashForString(aValue: string): TMD5Digest;
var Context: TMD5_CTX; begin MD5Init(Context); MD5Update(Context, PChar(aValue), Length(aValue)); MD5Final(Context, Result); end; |
Re: Passwort "endgültig" verschlüsseln
Zitat:
Aber wenn du meinst, würde ich mit einer kurzen Referenz auf dich das noch in die Unit einfügen. Sozusagen als "convenience function" :mrgreen: |
Re: Passwort "endgültig" verschlüsseln
Vielleicht bin ich einfach nur zu blöd aber ich konnte bei keinem der Links was finden... :wall:
Hat nicht jemand eine Funktion oder so für mich? |
Re: Passwort "endgültig" verschlüsseln
Zitat:
![]() |
Re: Passwort "endgültig" verschlüsseln
Und damit Du auch gleich etwas damit machen kannst ;-)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var md5_digi: TMD5Digest; // Ein 16 Byte grossen Array = 128 Bit; passwort: string; md5_hexstring: string; begin passwort := 'blubb'; md5_digi := MD5_HashForString(passwort); // Ereugt den Hash md5_hexstring := MD5_Hash2String(md5_digi); // Wandelt die 128 Bit ein einen HEX-String; ShowMessage(md5_hexstring); end; |
Re: Passwort "endgültig" verschlüsseln
Habe es aktualisiert und Sharkys Funktion aufgenommen. Da Sharky eigentlich nichtmal erwähnt werden wollte, und ich keinen Grund sehe selber erwähnt werden zu müssen, nur weil ich eine eigene Übersetzung des C-Codes liefere, habe ich es als PUBLIC DOMAIN deklariert. Niemand wird also je von dir verlangen einen von uns zu erwähnen ;) ... es sei denn, der Hai beißt nochmal zu :mrgreen:
Mit besten Grüssen, |
Re: Passwort "endgültig" verschlüsseln
Zitat:
Diese Antwort zeigt die Sinnhaftigkeit der Frage sehr schön. Warum möchtestdu ein Passwort "endgültig" verschlüsseln ?? Diese Frage ist ziemlich unverständlich. Gruß Hagen |
Re: Passwort "endgültig" verschlüsseln
Hallo negaH",
mann sollte einem 14 jährigen, der womöglich noch nicht viel erfahrung beim programmieren hat, das recht zu gestehen eine frage nicht in einem satz so formulieren zu können wie andere. dafür wurde im posting doch recht deutlich was er möchte finde ich. |
Re: Passwort "endgültig" verschlüsseln
Kommt mal wieder runter! :mrgreen:
Ich finde Hagens Einwand sachlich schon richtig, aber nicht unbedingt rethorisch gut dargelegt. Man hätte auch sagen können: "Erzeuge ein zufälliges Paßwort und speichere dieses nicht ab, mit diesem Paßwort verschlüsselst du dein Paßwort noch bevor du das zufällige Paßwort wegwirfst." Sachlich auch richtig, aber nicht angemessen. Aber einem wie Hagen lassen wir das doch durchgehen, oder? :cheers: |
Re: Passwort "endgültig" verschlüsseln
Ok, ich gebe zu das meine Antwort provokativ war.
Zitat:
1.) ein Passwort existiert 2.) damit werden Daten verschlüsselt 3.) danach wird dieses Passwort unwideruflich und für heutige Technologien unknackbar verschlüsselt. Wie kann man nun die vorher verschlüsselten Daten entschlüsseln ? Garnicht, also sollte man das Passwort samt zu schützende Daten unwideruflich und sicher löschen, basta. Denn nur so erreicht man die analytisch maximalste Sicherheit die erreichbar ist. Selbst ein OTP Verfahren, selbst ein echtes, unendlich echtes Zufallspasswort kann einfach nicht sicher sein als die Daten samt Passwort zu vernichten, für alle Zeiten, unendlich lange. Der einzigste Weg um dieses Passwort + Daten wiederherzustellen ist eine Zeitmaschine. Meine Antwort ist somit durchaus ernst zu nehmen und absolut logisch. Die Art & Weise meine Antwort so ohne weitere Erklärungen in den Raum zu werfen, jo das kann man kritisieren. Die beste Antwort auf die Eigansfrage lautet also: Warum? Ich vermute mal das es ein Contest ist oder ein Test eines Brute Force Algorithmus. Dies wäre die einzigst plausible Begründung warum man eine solche Frage stellen würde, aus meiner Sicht wohlgemerkt. Also, warum fragst du so eine Frage ? Gruß Hagen |
Re: Passwort "endgültig" verschlüsseln
Also für mich hört es sich ehr danach an, dass er sein Passwort einfach verschlüsselt irgendwo ablegen will und dass dieses nicht wieder zu rekonstruieren ist ( was eventuell das "endgültig" erklärt).
|
Re: Passwort "endgültig" verschlüsseln
Könnte auch sein, nur ist das dann unmöglich, ohne externe Crypto-Hardware.
Denn, ein Passwort wie "XZY" muß immer mit einem anderen Passwort wie "1234567890" verschüsselt werden, ganz einfach ausgedrückt. Das heist das das Passwort das ein Passwort schützen soll um ein vielfaches höhere Komplexität aufweisen muß als das verschlüsselte Passwort. Nun, nachdem man so ein Passwort geschützt hat stellt sich die Frage: "Wie schütze ich ein Passwort das ein Passwort schützt, das ein Passwort schützt das ein Passwort schützen soll, das .... ?" Also auch aus diesem Blickwinkel ist die Frage unsinnig zu beantworten wenn er nicht mit mehr Details rausrückt. Gruß Hagen |
Re: Passwort "endgültig" verschlüsseln
Zitat:
Zitat:
|
Re: Passwort "endgültig" verschlüsseln
@Olli,
ich gebe dir Recht mit dem Hinweis auf sein Alter, denoch ändert dies nichts an meiner Antwort da sie nur sachlich auf die Frage bezogen ist. Zitat:
Wir benötigen also in jedem Falle mehr Input vom Fragesteller. Zb. sowas wie "ich möchte das eingegebene Passswort über einen zweiten Wert auf Gültigkeit prüfen". Diese Frage ist einfach zu beantworten: nehme eine Hash Funktion, oder besser gesagt eine "sichere Einweg Verschlüsselung". Die Verschlüsselung des Passwortes mit sich selber ist unsicherer als eine solche Hash Funktion. Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 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