XaraX: Impl. von Crypt in PHP, Crypt vs. MD5-Crypt vs. MD5-Hash

Beitrag lesen

Nabend,

Fangen wir mit der MD5-Prüfsumme an - ein Verfahren, dass einen Hash aus einem String zieht, bei dem Hash handelt es sich entweder um eine 16-Bit langen RAW String oder (wie in PHP üblich) eine 32-Bit lange Hexadezimalzahl

Byte bitte ;)

[...]

jep

Allerdings ist PHP ja eine „Multi-Platform-Sprache“ und nicht auf jedem System wird unbedingt jede der oben aufgelisteten Methoden unterstützt - deshalb checkt PHP bei der Installation, was auf dem System verfügbar ist. Ich werde irgendwie jetzt grade aus der PHP Manual Seite auch nicht so ganz schlau - für mich sieht es so aus, als wäre nicht eindeutig definiert, auf welcher Basis PHP-crypt default-mäßig arbeitet.

*lach* Das ist mir letzlich mit den Mail-Funktionen auch so gegangen. Immer, wenn man etwas ganz genau wissen will, muß man in den Quellcode schauen.

Wie auch immer, du wirst es jedenfalls nicht schaffen, einen MD5-crypt-Hash mit der PHP Funktion crypt() zu erzeugen, du kommst du keinem Ergebnis, dass so aussieht wie
  ./htpasswd -nb -m username mein_password
Du schaffst es einfach nicht, den Magic String auf $apr1$ zu setzen, die Neuerung an der MD5-Crypt Implementation gegenüber der DES-Crypt Implementation ist nämlich, dass nicht nur ein Salt, sonder auch ein sogenannter Magic String genutzt wird, PHP setzt den auf $1$, aber Apache will für die Hashs in seiner .htusers Datei eben $apr1$ haben und um das zu erreichen, fehlt ein „Interface“, ein weiterer Parameter, mit dem man das beeinflussen könnten in dem crypt() von PHP.

Da ist eben die "Ungenauigkeit": Apache scheint dies nur für Windows zu verlangen und gibt sich auf *NIX auch mit der Systemfunktion crypt() zufrieden
http://httpd.apache.org/docs/2.0/programs/htpasswd.html
"...htpasswd encrypts passwords using either a version of MD5 modified for Apache, _or the system's crypt() routine_..."

[...]
Ich hoffe, ich konnte mich jetzt etwas verständlicher ausdrücken, ausführlicher war es denke ich auf jeden Fall ;-)

jep

mangels apache auf einem Windowsystem, würde ich Dich bitten zu bestätigen, das auch eine MD5-Prüfsumme dort scheitern. Da ich interpretieren muß, daß Deine Überlegenungen von DES-basierte Verschlüsselung ausgehen.
Du meinst, dass es scheitert eine MD5-Prüfsumme in die .htusers Datei zu schreiben? Ja, dass kann ich dir bestätigen, ich habe es jetzt gerade nicht ausprobiert, aber ich weiß noch, dass das so eine der ersten Sachen war, die Fabian und ich vor dem Übersetzen des Moduls ausprobiert haben ;-)

Danke!

PS:...

Immer diese post scripta ;(

Gruß aus Berlin!
eddi