tipos password_verify password encriptar encriptacion desencriptar contraseña php security unix hash passwords

php - encriptar - password_verify



¿Cómo creo un hash de contraseña de Unix con php? (5)

Dependiendo de tu sistema, estás buscando crypt() o md5() .

Tradicionalmente, Unix usa contraseñas cifradas DES (esa es la función ''crypt''), con una sal de 2 caracteres (dos caracteres aleatorios del conjunto [a-zA-Z0-9./]) que se antepone al hash para perturbar el algoritmo.

Los sistemas más nuevos a menudo usan MD5 sin embargo.

Intento crear usuarios de sistemas con un script php de forma segura. En ese sentido, me gustaría poder usar la contraseña con el script php, para que su contraseña no aparezca en ninguna parte del historial de bash.

¿Cómo tomo una cadena y la hash para que sea un hash de contraseña de Unix?

$UX_PW = some_function(''my_password''); exec("useradd -p $UX_PW newusername");


Desde la página man Ubuntu Intrepid en passwd (cambiar contraseña)

La seguridad de una contraseña depende de la fortaleza del algoritmo de encriptación y del tamaño del espacio clave. El método de cifrado del sistema UNIX se basa en el algoritmo NBS DES y es muy seguro. El tamaño del espacio clave depende de la aleatoriedad de la contraseña que se selecciona.

Además, en lugar de utilizar crypt () puede preferir hash () porque esto le permite mantener la configuración de cadena para el algoritmo hash en otro lugar. Si su código necesita usar un algoritmo hash diferente para otros entornos, solo tendrá que cambiar la cadena y no el nombre de la función.


El hash de contraseñas utilizado en UNIX, Linux y otros sistemas operativos POSIX similares a UNIX varía mucho. La mayoría de los métodos de hashing " passwd " utilizan un algoritmo DES modificado (no un verdadero DES), pueden aplicar el hash a la entrada varias veces, y usan una sal de 16 o 24 bits. Una respuesta específica del método para producir un hash compatible con passwd depende del sistema operativo que esté utilizando.

La llamada al sistema crypt() debe ser la forma de realizar el hash de contraseñas de acuerdo con su sistema operativo. Puede acceder a él en PHP usando la función crypt() .

En cuanto a qué algoritmo de cripta utilizar, esto depende de su sistema operativo.



Usa la cripta Los linux / unixes recientes usan CRYPT_MD5 o CRYPT_BLOWFISH. MD5 es el más apoyado. Los DES son para sistemas antiguos.

También debo tener en cuenta que la versión MD5 no es una simple operación suma MD5, sino que también utiliza un valor "sal" para hacer hashes no precalculables. [[Inventé este término :)]]