verschlüsseln und entschlüsseln mit php
uwi
- php
-4 Cheatah0 Sven Rautenberg0 Tom3 Dennis
0 André1 Der Martin
hallo zusammen,
ich würde gerne mit php einige textstrings
welche befehle kommen da in php denn in frage.
es müsste ja die syntax sein:
$verschuesselt = encoder( $passwort , $data );
$entschuesselt = decoder( $passwort , $verschlüsselt );
vielen dank
uwi
Hi,
ich würde gerne mit php einige textstrings
- mit hilfe eines passwortes verschlüsseln
das ist gut.
- in eine datei oder db schreiben
Das auch.
- und später mit dem selben passwort wieder entschlüsseln
Das hingegen ist hundsmiserabel. Du möchtest Passwörter *nicht* entschlüsselbar ablegen. Statt dessen möchtest Du das verschlüsselte Passwort mit der verschlüsselten Eingabe vergleichen.
welche befehle kommen da in php denn in frage.
War das eine Frage.
es müsste ja die syntax sein:
$verschuesselt = encoder( $passwort , $data );
Ein encoder() wäre ein Objekt, welches z.B. über eine encode()-Methode verfügt. Die Suche nach "encode" in der PHP-Doku liefert bereits ziemlich viele Treffer. Du möchtest Dir aber zunächst einen Verschlüsselungsalgorithmus aussuchen, der *nicht* reversibel ist, beispielsweise crypt.
$entschuesselt = decoder( $passwort , $verschlüsselt );
Wenn Du auf diese oder andere Weise das originale Passwort erhalten kannst, ist der Algorithmus für Deine Zwecke unbrauchbar.
Cheatah
Moin!
ich würde gerne mit php einige textstrings
- mit hilfe eines passwortes verschlüsseln
- in eine datei oder db schreiben
- und später mit dem selben passwort wieder entschlüsseln
Das hingegen ist hundsmiserabel. Du möchtest Passwörter *nicht* entschlüsselbar ablegen.
Schon mal von 3DES, AES oder PGP gehört? Klarer Fall von "Falscher Pawlow-Reflex". :)
- Sven Rautenberg
Hello,
- und später mit dem selben passwort wieder entschlüsseln
Das hingegen ist hundsmiserabel. Du möchtest Passwörter *nicht* entschlüsselbar ablegen. Statt dessen möchtest Du das verschlüsselte Passwort mit der verschlüsselten Eingabe vergleichen.
Wenn Du nun noch ein paar Sätze zur Erläuterung beigefügt hättest, dann wäre ich u.U. auch bereit, Dir ein "hilfreich" zu geben :-)
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hi Cheatah,
Du möchtest Passwörter *nicht* entschlüsselbar ablegen.
Sicher? Der OP hat hierzu soweit ich es gesehen habe keine Angaben gemacht - wer sagt, dass er z.B. ein Login-System eines geschützten Bereiches programmieren will? Es kann doch durchaus sein, dass er das Passwort später noch einmal benötigt, vielleicht um irgendeine Verbindung - sein es MySQL, FTP oder sonst etwas - herzustellen.
Dein Einwand ist zwar durchaus berechtigt - man sollte den OP darauf hinweisen, dass er Passwort-Kontrollen auch mit den Hashs durchführen kann, mit dieser Absolutheit würde ich allerdings nicht sagen, dass er das auch wirklich will.
Also uwi, wenn du ein Login-System realisieren willst, dann ist es besser/sicherer, nur einen Hash bzw. das Ergebnis einer Einweg-Verschlüsselung zu speichern, dazu könntest du z.B. die MD5 Summe errechnen und diese in der Datenbank oder so abspeichern, beim Login prüfst du dann:
~~~php
if($wert_aus_der_db == md5($benutzer_eingabe)) {
# Eingegebenes Passwort ist korrekt
}
Brauchst du allerdings das richtige Passwort noch einmal, um dich irgendwo zu autorisieren, z.B. beim Aufbau einer FTP Verbindung, dann schau dir mal die [MCrypt Funktionen](http://de2.php.net/manual/de/ref.mcrypt.php) von PHP an, damit kannst du Texte ver- und wieder entschlüsseln.
MfG, Dennis.
--
Mein SelfCode: [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)
Die [FlatBox 0.3.1](http://tutorial.riehle-web.com/scripts/#flatbox) mit [Dokumentation](http://tutorial.riehle-web.com/scripts/flatbox/doku.html) ist da!
[arghhh](http://www.schaumerlmal.de/blog/log.php?y=2006&m=02&url=arghhh) - [www.schaumerlmal.de](http://www.schaumerlmal.de)
ich würde gerne mit php einige textstrings
- mit hilfe eines passwortes verschlüsseln
das ist gut.
- in eine datei oder db schreiben
Das auch.
- und später mit dem selben passwort wieder entschlüsseln
Das hingegen ist hundsmiserabel. Du möchtest Passwörter *nicht* entschlüsselbar ablegen. Statt dessen möchtest Du das verschlüsselte Passwort mit der verschlüsselten Eingabe vergleichen.
Wer sagt denn überhaupt, dass uwi Passwörter verschlüsseln will? Er hat doch lediglich geschrieben, dass er Textstrings mit einem Passwort veschlüsseln will - was ja ein vällig anderer Einsatzzweck als die Veschlüsselung von Passwörtern ist.
@uwi: Hab ich selbst noch nicht gemacht, daher hab ich im Moment auch keine passende Antwort parat ... sorry.
Gruß, André
Hi Cheatah,
- und später mit dem selben passwort wieder entschlüsseln
Das hingegen ist hundsmiserabel. Du möchtest Passwörter *nicht* entschlüsselbar ablegen. Statt dessen möchtest Du das verschlüsselte Passwort mit der verschlüsselten Eingabe vergleichen.
dieser Ratschlag ist in Ordnung, wenn es nur darum geht, später eine Benutzereingabe gegen ein bereits vorhandenes verschlüsseltes Passwort zu prüfen - eben bei einer typischen Login-Abfrage.
Geht es aber darum, einen beliebigen Bytestream zu verschlüsseln und später unter Zuhilfenahme desselben Passworts wieder zu entschlüsseln, dann brauchst du _unbedingt_ einen reversiblen Algorithmus. Wie "gut", d.h. wie aufwendig der zu knacken ist, das ist wieder eine ganz andere Frage.
$verschuesselt = encoder( $passwort , $data );
Du möchtest Dir aber zunächst einen Verschlüsselungsalgorithmus aussuchen, der *nicht* reversibel ist
Nein, für die allgemeine Fragestellung ist das _nicht_ angebracht.
$entschuesselt = decoder( $passwort , $verschlüsselt );
Wenn Du auf diese oder andere Weise das originale Passwort erhalten kannst, ist der Algorithmus für Deine Zwecke unbrauchbar.
Jein. Aus einem mit einem reversiblen Algorithmus verschlüsselten Text ist es entweder möglich, unter Zuhilfenahme des richtigen Passworts den Originaltext zu rekonstruieren, oder bei Kenntnis des Originaltexts das Passwort herauszufinden. Habe ich beides nicht, ist die Verschlüsselung "theoretisch sicher". Okay, mit heuristischen Methoden kann man immer noch zum Ziel kommen, aber nicht anhand einer klar formulierbaren Prozedur. Die Erfolgschancen sind dann von der Komplexität der Verschlüsselung abhängig.
Schönen Abend noch,
Martin