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: