[PHP] crypt + htpasswd

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zie dat hier al veel topics over zijn, maar nog kom ik er niet uit.

Ik heb een pakket phpdev van http://www.firepages.com.au op mijn win2k bak.
Als ik een password maak via apache "htpasswd -c .htpasswd naam" doe
dan krijg een .passwd file die goed werkt.

Maar nu heb ik een zelf een script geschreven die automatisch .htaccess en .htpasswd bestanden genereerd. Dit werkt allemaal goed behalve het maken van de passwords.

Als ik een password "projecten" genereer via apache dan krijg ik dit:
$apr1$9G5.....$/KPrTugmao5xyMl8kmbNr0

Dit gebruik ik als code:
PHP:
1
$password = crypt($password);

en dan krijg ik als resultaat:
d.VJoom5rGDBA

Nou lees ik op php.net hetvolgende:
To generate a .htaccess-based authentication with DES, you have to use the first two characters of your password as salt.

$pass = "something";
$ht_pass = crypt($pass,substr($pass,0,2));


this is realy necessary
I can't did less this comment
Maar als ik dit doe:
PHP:
1
$password = crypt($password,substr($password,0,2));

Dan krijg ik dit:
2SKvedBhQx9Q2

ff voor de duidelijkheid...
Ik wil dus dit password: $apr1$9G5.....$/KPrTugmao5xyMl8kmbNr0 genereren met PHP ;)

[ Voor 8% gewijzigd door Verwijderd op 20-02-2004 18:29 ]


Acties:
  • 0 Henk 'm!

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 20-09 21:57

JaWi

maak het maar stuk hoor...

Dat extra argument dat gesuggereerd wordt door de PHP documentatie is de zg. `salt' voor de crypt functie (hiermee wordt het aantal mogelijkheden voor je wachtwoord vergroot met 4096). Als je het goed gebruikt, kun je er ook voor zorgen dat er meer dan een `crypt'-resultaten voor hetzelfde wachtwoord gegenereerd worden. Met andere woorden: er is niet ``een echte'' crypt-output; er zijn er meerdere.

Maar, als je het wachtwoord crypt via je script, kom je dan niet in je script?

edit:
spellen is moeilijk soms

[ Voor 9% gewijzigd door JaWi op 20-02-2004 18:40 ]

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.


Acties:
  • 0 Henk 'm!

Verwijderd

OP win bakken wordt md5 gebruikt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Maar, als je het wachtwoord crypt via je script, kom je dan niet in je script?
:?
In mijn dir bedoel je?

Nee, met die andere wachtwoorden kom ik niet in mijn dir.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 20 februari 2004 @ 18:40:
OP win bakken wordt md5 gebruikt.
Daar zat ik eerst ook aan te denken, maar ik gebruik PHPdev. En dan gebruik je als het ware apache. Het zijn sowieso geen md5 wachtwoorde, want die zijn veel langer.

Acties:
  • 0 Henk 'm!

Verwijderd

Heb dit gevonden:
[rml][ php] htaccess / md5 werkt niet meer[/rml]

Apache maakt gebruik van een eigen algoritme van md5. Kijk eens of het op de manier gaat die in bovenstaand topic besproken is.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 20 februari 2004 @ 19:03:
Heb dit gevonden:
[rml][ php] htaccess / md5 werkt niet meer[/rml]

Apache maakt gebruik van een eigen algoritme van md5. Kijk eens of het op de manier gaat die in bovenstaand topic besproken is.
Er staat alleen geen oplossing bij...
Er is naar mijn weten in php geen functie waarmee dit te bereiken is. Gebruik dus htpasswd.exe.

[ Voor 37% gewijzigd door Verwijderd op 20-02-2004 19:13 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Is er dus geen oplossing voor dit probleem :?
Dat lijkt me toch sterk...

Als je met htpasswd.exe op windows een goed bestand kan maken, dan moet dat toch ook lukken met php?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik probeer het nu via htpasswd van apache zelf, maar ook dit krijg ik niet aan de praat...

Ik heb devolgende code:
PHP:
1
2
3
4
5
6
<?php
$p = "usr/bin/htpasswd";

$command = $p." -bc /home/sites/site12/web/wbl/cms/.blaat0 blaat23 blaat22"; 
exec($command);
?>


Als ik dit lokaal gebruik (met andere paden uiteraard) dan werkt het wel?
Iemand een idee?

BTW ik krijg geen foutmelding oid.
BTW2 er worden nu geen .htpasswd en .htaccess gemaakt ;)

[ Voor 21% gewijzigd door Verwijderd op 21-02-2004 12:45 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het script werkt
PHP:
1
2
$command = "htpasswd -bc ".$this->fPasswd." ".$username." ".$passwordtext; 
exec($command);


Alleen wordt er nog steeds een password gegenereerd die niet goedgekeurd wordt door de .htaccess files. En hij lijkt ook verreweg niet op het wachtwoord wat ik genereer lokaal.

Lokaal:
fkd:$apr1$gF4.....$gjgFpn8fbJ6NidN2Z/ruA/
Server:
fkd:IIQTCLmq36JaQ

Maar ik snap er geen hol meer van. Hoe kan het nou dat als ik een password maak met htpasswd op de server, dat het dan niet werkt???

Kan iemand mij dat uitleggen??

[ Voor 12% gewijzigd door Verwijderd op 21-02-2004 15:08 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het werkt!! :*)

Er stond nog ergens een debug stringetje :o

Conclusie. Als het dus niet lukt met crypt() in PHP, probeer het dan met de htpasswd van je server.
Je hebt geen pad nodig naar je htpasswd. Hetvolgende werkt:
PHP:
1
2
$command = "htpasswd -bc pad/naar/dir/.htpasswd user password"; 
exec($command);


Als je de bestanden zelf ook nog wilt verwijderen of wijzigen via ftp, geef de bestanden dan ook nog chmod 0777 mee. Maar doe dit niet bij echt gevoelige info natuurlijk. Zelf doe ik dit bv wel bij de statistieken mappen ;)

[ Voor 3% gewijzigd door Verwijderd op 21-02-2004 15:46 ]


Acties:
  • 0 Henk 'm!

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 17-09 21:58

BHR

BTW, Pear heeft een package waarmee je onder andere apache htpasswd wachtwoorden mee kunt genereren:
http://pear.php.net/package/File_Passwd

Hier een directe url naar de code:
http://cvs.php.net/cvs.php/pear/File_Passwd/Passwd

[ Voor 15% gewijzigd door BHR op 21-02-2004 15:50 ]

No amount of key presses will shut off the Random Bug Generator

Pagina: 1