[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Como se encripta la clave en /etc/passwd?



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 debian-user-spanish-request@lists.debian.org < /dev/null
> 



Reply to: