Ver- und Entschlüsseln eines Strings in PHP?

Josh

Legendäres Mitglied
Hi alle

Gibt es einen ganz einfachen Weg, mit welchem ich einen String mit einem Passwort verschlüsseln kann?

Sowas in der Art:

CODE
$encryptedString = myEncrypt("Dieser String soll verschlüsselt werden","MeinPasswort"); // String verschlüsseln
$decryptedString = myDecrypt($encryptedString,"FalschesPasswort"); // Gibt Fehler "Ungültiges PW" aus
$decryptedString = myDecrypt($encryptedString,"MeinPasswort"); // OK



Ich habe mich durch die PHP Manual gequält, aber dort scheinen alle Verschlüsselungsfunktionen auf 3rd Party Plugins zu basieren...

Danke für Info
Josh
 
Kenne nur md5()
Aber das meinst du nicht oder?

Sonst bleibt nur eins: Selber ein Skript schreiben.
 
wie wäre es mit md5 ???
z.b.
$Passwort = "1234";
$VerschluesseltesPasswort = md5($Passwort);

ergibt dann 81dc9bdb52d04dc20036dbd8313ed055

ist auch recht sicher, denn es gibt angeblich keine Funktion die aus
81dc9bdb52d04dc20036dbd8313ed055 wieder 1234 macht.
also auch beim login kannst du das nicht entschlüsseln, sondern must das was der User einträgt auch verschlüsseln und dann mit dem gespeicherten vergleichen
 
QUOTE (Josh @ Mo 20.6.2005, 9:19)[...]
Gibt es einen ganz einfachen Weg, mit welchem ich einen String mit einem Passwort verschlüsseln kann?

Sowas in der Art:

[...]

Ich habe mich durch die PHP Manual gequält, aber dort scheinen alle Verschlüsselungsfunktionen auf 3rd Party Plugins zu basieren...
[...]

Hallo,

versuch es mal damit, ich würde es wohl in etwa so lösen:

http://de3.php.net/manual/de/ref.mhash.php
(oder)
http://de3.php.net/manual/de/ref.openssl.php


Hier muss wohl auch mind. ein PHP-Module verwendet werden, aber sonst bietet PHP in der Form keine Möglichkeit solche Verschlüsselungen hinzubekommen. Zumindestens keine wie Du sie haben möchtest.



MfG Sascha Ahlers

PS: Ihr solltet euch auch mal das Beispiel anschauen, der verschlüsselte Text soll auch wieder decodiert werden und md5() verschlüsselt nicht, sondern erzeugt eine Checksumme.
 
QUOTE sondern erzeugt eine Checksumme.


Ich habe ja auch gesagt, weil ich halbsweg dachte, dass es das nicht meint, da md5 jeder kennt und wirklich keine richtige Verschlüsselung wie du sagtst.

QUOTE Aber das meinst du nicht oder?
 
QUOTE (Patrick- @ Mo 20.6.2005, 10:42)
QUOTE sondern erzeugt eine Checksumme.


Ich habe ja auch gesagt, weil ich halbsweg dachte, dass es das nicht meint, da md5 jeder kennt und wirklich keine richtige Verschlüsselung wie du sagtst.

QUOTE Aber das meinst du nicht oder?


Es bezog sich auch mehr auf den letzten Beitrag von Metaman.


MfG Sascha Ahlers
 
Leute, er sucht was, dass sich auch wieder decodieren lässt, daher fällt md5 und ähnliches schon mal weg..

Josh, ich denke du meinst sowas in dieser Richtung, Richtung?
biggrin.gif

http://www.netexplorer.dk/tutorial/php/php...er/base64ed.php
Ich weiss, ist weder ein richtiger Encoder noch sonstwas, aber der gewünschte Effekt wird sehr einfach erreicht
tongue.gif



Oder natürlich das da
laugh.gif
laugh.gif
laugh.gif
 
base64 gibt's auch auf deutsch http://php.benscom.com/manual/de/function.base64-encode.php

ein passwortschutz ist aber nicht dabei.

Wenn es sicher sein soll, würde ich über eine sql abfrage und md5 arbeiten.
Den string in einem table zusammen mit dem md5-passwort speichern und abrufen.
(tmp-tables bringen einen nicht unerheblichen Geschwindigkeitsvorteil.)

ungefähr so:
$pw=md5(meinPasswort);
mysql("select string from table where pw = '$pw'")
 
QUOTE (Tuemmel @ Mo 20.6.2005, 21:22) base64 gibt's auch auf deutsch http://php.benscom.com/manual/de/function.base64-encode.php

Base64 ist auch keine Verschlüsselung, Base64 kodiert nur die Daten.

http://de.wikipedia.org/wiki/Base64

Sprich jeder der an die Daten so kommt, kann diese auch ohne großen Aufwand lesen. Man kann diese dann auch gleich Klartext (sprich als 'text' oder 'blog') in die Datenbank speichern und mit meinen Password aufrufen, wie Tuemmel es beschreiben hat.

Von den Tutorial mal ganz abgesehen, wird dies bestimmt keine sichere Verschlüsselung bereitstellen können, na ja, wenn nichts anderen da ist, muss man sich damit aber wohl begnügen...



MfG Sascha Ahlers
 
QUOTE Von den Tutorial mal ganz abgesehen, wird dies bestimmt keine sichere Verschlüsselung bereitstellen können, na ja, wenn nichts anderen da ist, muss man sich damit aber wohl begnügen...


Ich denke, dass die Kombi des erwähnten Tutorials zusammen mit base64_encode (da die Klasse im Tutorial nur ASCII Zeichen verschlüsseln kann) eine ordentlich gute Verschlüsselung bieten. Ich habe keine Ahnung von Verschlüsselungen und wie man sie knackt, aber so wie sie im Tutorial beschrieben ist kommt man ohne Passwort wirklich kaum hinter die Lösung...
 
QUOTE (Josh @ Di 21.6.2005, 9:27)[...]
Ich habe keine Ahnung von Verschlüsselungen und wie man sie knackt, aber so wie sie im Tutorial beschrieben ist kommt man ohne Passwort wirklich kaum hinter die Lösung...

Ich denke nicht, dass Du selber einfach eine Verschlüsselung bauen kannst, dies hat mehrere Gründe, zum einen, dass Du bestimmt sowas nicht gelernt hast zu entwickeln. Und besonders da Du keine Ahnung von Verschlüsselungen hast, lege ich dir ans Herz eine von den Standardverschlüsselungen zu nehmen (nur nicht gerade PGP, lieber GnuPG).


MfG Sascha Ahlers
 
Ich möchte gern einen Text Verschlüsseln, um diesen dann verschlüsselt in einer
Datenbank abzulegen.
Dann diese Texte wieder entschlüsselt mit PHP anzeigen,
wenn vorher das richtige Passwort eingegeben wurde.

Gite es dabei was sicheres als die alte Cäsar-Verschlüsselung ?
 
@ ianuti:

Willkommen im Forum!
smile.gif


Vergiss nicht, dass die benutzte Datenbank höchstwahrscheinlich über eine Vielzahl von Verschlüsselungsroutinen verfügt; vielleicht helfen dir diese ja weiter.
Habe folgenden Code in einem anderen Forum gefunden:

CODE SELECT AES_ENCRYPT('secret', 'my_salt');
# will encrypt 'secret' using 'my_salt' as the hash
INSERT INTO table test (var1, var2) VALUES ( AES_ENCRYPT ('secret', 'my_salt'), 'foo');
# will insert the AES encrypted value into table test, field var1
SELECT AES_DECRYPT( var1, 'my_salt) FROM test
# will return the decrypted var1 colum from test.


Gruss
Josh

PS: apropos "Jeder nur ein Kreuz": Wachen, werft ihn zu Poden!
tongue.gif
 
Zurück
Oben