El Mon, Sep 04, 2000 at 08:12:50PM +0200, Jaime Fern�ndez Mart�nez dijo:
> Pretendo hacer un programilla en PHP que autentifique usuarios a trav�s
> de una copia reducida de /etc/shadows. 
> Para ello utilizo la funci�n de PHP 'crypt(contrase�a, semilla)' y
> comparo con el valor almacenado.  Mi gran duda es: �de d�nde obtengo la
> semilla?  He probado con los 2 primeros caracteres de la contrase�a
> encriptada, pero s�lo me identifica las que est� vac�as :-(.  He buscado
> documentaci�n por muchos sitios (incluso he intentado leer las fuentes
> de passwd.c), pero no lo acabo de ver.
>       Por otra parte, si alg�n usuario/programador m�s avezado en Apache/PHP
> sugiere otro m�todo de verificaci�n de usuario/contrase�a se agradece
> tambi�n.

Pues yo me v� en un problema similar con el CVS, ten�a que hacer un programita
en C que me encriptase claves, por que el cvs no encripta. 


Sacado de la man crypt(3)

"salt  is  a  two-character  string  chosen  from  the  set
       [a-zA-Z0-9./]"


Lo que hice es cojer como semilla el tiempo actual, transformando esta semilla
para que pertenezca al conjunto anterior, quedando lista para pasarla a crypt().

Una vez obtenido el passwd encriptado lo pon�a en el fichero CVS/passwd.

Para comprobar el passwd, cojes los dos primeros caracteres de el pw del 
fichero( la semilla que calculaste ) y "cryptas" el pw a comprobar con dicha 
semilla.
Si coninciden lo cryptado, con lo que tienes en el fichero pues la clave es 
buena.

Bueno espero haberte ayudado.


> 
> --  
> Unsubscribe?  mail -s unsubscribe [EMAIL PROTECTED] < /dev/null
> 

Responder a