Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP: Entschlüsseln (https://www.delphipraxis.net/1175-php-entschluesseln.html)

Chewie 28. Okt 2002 14:11


PHP: Entschlüsseln
 
Ich hab auch mal eine Frage in PHP:
Ich will einen String (ein Passwort) verschlüsselt in einer Datenbank speichern. Dafür benutz ich die von PHP mitgelieferte String-Funktion md5(). Die verschlüsselt mir die Daten. Da gibts nur das Problem: Wie kann ich die Daten wieder entschlüsseln? Ist nicht unbedingt erforderlich, wär aber ganz nützlich.

Christian Seehase 28. Okt 2002 14:24

Moin Chewie,

wenn ich nicht sehr irre, werden MD5 Prüfsummen mittels einer Hashfunktion erzeugt.
Diese Berechnung ist nicht umkehrbar, sprich:
Du kannst aus den verschlüsselten Daten nicht mehr auf den Klartext zurückrechnen.

Chewie 28. Okt 2002 14:30

OK. Ich war mir nicht sicher, weil in der PHP-Doku steht weder, dass es geht noch, dass es nicht geht.
Dann muss ich es eben ohne umkehrbare Verschlüsselung machen oder selber die Daten per XOR verschlüsseln.

Christian Seehase 28. Okt 2002 14:40

Moin Chewie,

wozu willst Du die Berechnung umkehren können?
Gerade bei Passworten bietet sich doch die Benutzung einer Hashfunktion an, damit niemand der Zugriff auf die, verschlüsselten, Passworte erlangt diese wieder eingebbar entschlüsseln kann.
Bei XOR Verschlüsselung mit OTP ist dies zwar auch gesichert, aber immerhin könntest Du es entschlüsseln, bzw. der erforderliche Algorithmus liesse sich aus dem Programm herleiten.

Chewie 28. Okt 2002 14:44

Gerade das will ich ja. Ich will alles sehen können aber es keinem anderem erlauben. Ich will die absolute Macht!!!! :twisted: :mrgreen:

Nein, im Ernst, durch eine Entschlüsselung kann man sich das Passwort direkt per Mail zusenden oder überhaupt das Passwort ermitteln. Das wär bequemer, aber ist nicht unbedingt notwendig. Sonderlich sicher muss das ganze sowieso nicht sein, da stehen keine sensiblen Daten. Ich werd jetzt mal überlegen ob ich auf eine Mehrfachverchlüsselung zurückgreif oder ob ich doch eine sichere Einwegmethode nehme.

Christian Seehase 28. Okt 2002 14:52

Moin Chewie,

wenn Du das PW zuschicken können willst (Stichwort: "Ich hab' mein Passwort vergessen :cry: ")
Könntest Du immer noch auf das zurücksetzen des Passwortes, das dann ersatzweise verschickt wird, zurückgreifen.

sakura 28. Okt 2002 15:06

Zitat:

Zitat von Chewie
Gerade das will ich ja. Ich will alles sehen können aber es keinem anderem erlauben. Ich will die absolute Macht!!!!

Die Macht über die Daten hast Du dann doch eh. Ich würde Dir empfehlen, wie auch Christian es bereits tat, den MD5 zu nutzen. Wenn ansonsten jemand den Server hackt und es schafft die Passwörter zu entschlüsseln, und dass ist beim XOR recht einfach, dann kannst Du dafür zur Verantwortung gezogen werden, dass die Daten nicht aussreichend geschützt waren.

Chewie 28. Okt 2002 16:24

Meine Aussage war ja nur scherzhaft gemeint. Aber ich werd mir das zu Herzen führen, was ihr gesagt habt. Für das, wofür ich das brauche, ist wohl die Sicherheit nicht allzuwichtig, aber für ein anderes Projekt dürfte das wichtig sein. Danke für die Infos!

Christian Seehase 28. Okt 2002 17:19

Moin Chewie,

vielleicht suchst Du auch noch mal nach dem DEC (Delphi Encryption Compendium) von Hagen Reddmann.
Soweit ich weiss, ist darin auch ein wenig zur Theorie, und zur Anwendung von Verschlüsselungen enthalten (z.B. wie baut man solche Kompos in Programme ein, wann werden sie am besten erzeugt/zerstört...).

Z.B. bei den JEDIs müsstest Du wohl fündig werden.

rebugger 2. Nov 2002 15:06

Wenn du das Passwort in mySQL speicherst kannst du auch
Code:
$sql = mysql_query("INSERT INTO tabelle (pwd) VALUES (PASSWORD('".$pwd."'))");
PASSWORD() benutzen !
Dies ist, wie md5() nicht entschlüsselbar !
Wenn du aber das passwort vergleichen willst, mit dem eingegebenen kannst du es so machen:
Code:
$sql = mysql_query("SELECT * FROM tabelle WHERE pwd=PASSWORD('".$pwd."')");


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz