• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

htpasswd / digest / XAMPP

conym18

Member
Hallo zusammen,

ich habe einen XAMPP.

ich versuche per Script die htaccess und die passende htpasswd zu erstellen.


PHP:
			$username = "user";
			$password = "pwd";

			$new_pfad = "".$_SERVER["DOCUMENT_ROOT"]."/downloadpfad-UID";
			
			mkdir($new_pfad);
			
			$htaccess = fopen("".$new_pfad."/.htaccess", "w");
			fputs($htaccess,
				"AuthType Basic\n".
				"AuthName \"Login\"\n".
				"AuthUserFile \"..\\htdocs\\.htpasswd\"\n".
				"require valid-user\n"
			   );
			fclose($htaccess);
			
			
			$htpasswd = fopen("".$new_pfad."/.htpasswd", "w");
			$password = crypt($password);
			fputs ($htpasswd, "$username:$password\n");
			fclose ($htpasswd);

Soweit klappt alles.
Auch wenn ich meine Seite aufrufe erhalte ich die Username/Passwordabfrage.

nur leider kann ich mich nicht erfolgreich einloggen und die abfrage erscheint immer wieder.

die htpasswd schaut folgendermaßen aus:
Code:
user:$1$mg2.105.$6oICaBUgL0io5GLcEzzzK/


wenn ich das tool von http://www.htaccesstools.com/htpasswd-generator/ nutze und die erzeugte kombination

Code:
user:$apr1$g.i/1LnW$Nd0aufr/92czb/veMKCdE0

in die htpasswd eintrage, dann geht es.


ich steh grad auf dem schlauch.
ist crypt die falsche php funktion?
 
ist crypt die falsche php funktion?

Nein, prinzipiell kann crypt() schon dafür verwendet werden. Allerdings mußt du einen Hash-Algorithmus verwenden, den Apache auch versteht, indem du den SALT der Funktion entsprechend setzt (siehe hierzu auch die PHP-Doku, crypt() ohne SALT erstellt nur schwache Passwort-Hashes).
Ggfl. kann dein Apache ja mit bcrypt umgehen, dann sollten mit der PHP-Funktion password_hash() erstellte Hashes eigentlich funktionieren.
 
Zum testen sowas wie das:

Code:
<?php
// Password to be encrypted for a .htpasswd file
$clearTextPassword = 'some password';

// Encrypt password
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));

// Print encrypted password
echo $password;
?>

Das Salz natürlich am besten anders gestalten ^^

Quelle: http://www.htaccesstools.com/articles/create-password-for-htpasswd-file-using-php/ (Der Link ist auch in dem von dir verlinkten Artikel zu finden ;-) )
 
Last edited by a moderator:
Hallo,

das hatte ich auch genutzt, aber da kommt als Kennwort folgendes raus:

cH6VUI5ntda7s


es muss aber folgendes sein, damit es richtig ist:

$apr1$g.i/1LnW$Nd0aufr/92czb/veMKCdE0
 
Ich habe bisher nur mit Apache unter Linux zu tun gehabt und da funktioniert auch ein DES Hash. Ich meine aber, mal gelesen zu haben, dass unter Windows ein MD5-basierter Hash genutzt werden muß. Es gibt aber fertige PHP-Classen/Funktionen, die du über die Suchebegriffe "php apache md5" beim Suchanbieter deines Vertrauens findest.
 
Also ich mache es auch mit crypt und base64_encode und das funktioniert einwandfrei..

root@xxx:/usr/src# php testpass.php
c2NRMcfVW9wf2
 
Klar funktioniert es, conym18 will aber Hashes nach dem "APR1-MD5" Verfahren haben, das im Apache HTTPD implementiert ist.
 
Also ich mache es auch mit crypt und base64_encode und das funktioniert einwandfrei..

root@xxx:/usr/src# php testpass.php
c2NRMcfVW9wf2

Dieses Kennwort funktioniert aber nicht mit einem Windows XAMPP.

Ich habe rausgefunden, dass ein "$apr1$" davorstehen muss.
 
Hab ich oben doch geschrieben, Google spuckt direkt mehrere Seiten mit Routinen aus, um einen solchen speziellen MD5-Hash für Apache zu erzeugen.
 

Code:
Warnung
Ein(e) verdächtige(s) Datei/Muster wurde auf dieser Webseite gefunden. Der Zugriff auf die Webseite wurde blockiert.
Angeforderte URL: 		http://www.lmdfdg.com/?q=apache+php+md5
Information: 		Enthält Muster der Software PUA/CryptoMiner.Gen
Möchten Sie mehr über diese Bedrohung erfahren? Fragen Sie die Community oder wenden Sie sich an die Live Help von Avira Answers.

Auch hübsch. So kann man es auch machen ^^
 
Hab des Link dann doch mal gegen den direkt zu Google ausgetauscht. Danke für den Hinweis, ist bei mir nicht zum Zuge gekommen, da ich die eingebundene Seite für den Cryptominer schon seit längerem in Noscript geblockt habe...
 
Back
Top