GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo encontrar el algoritmo hash utilizado para cifrar contraseñas?

Tengo la contraseña de trabajo y puedo ver el hash (/etc/passwd). ¿Cómo encuentro el algoritmo hash utilizado para codificar la contraseña, sin probar manualmente diferentes algoritmos hasta que encuentre una coincidencia?

Respuesta aceptada:

Esto está documentado en crypt(3) La página de manual de , que puede encontrar a través de shadow(5) la página de manual, o passwd(5) 's. Esos enlaces son apropiados para los sistemas modernos basados ​​en Linux; la descripción que hay es:

Si sal es una cadena de caracteres que comienza con los caracteres “$id $”
seguido de una cadena terminada opcionalmente en “$”, entonces el resultado
tiene la forma:

$id$salt$encrypted

identificación identifica el método de cifrado utilizado en lugar de DES y esto determina cómo se interpreta el resto de la cadena de contraseña. Se admiten los
siguientes valores de id:

ID  | Method
─────────────────────────────────────────────────────────
1   | MD5
2a  | Blowfish (not in mainline glibc; added in some
    | Linux distributions)
5   | SHA-256 (since glibc 2.7)
6   | SHA-512 (since glibc 2.7)

Blowfish, también conocido como bcrypt , también se identifica con los prefijos 2 , 2b , 2x y 2y (consulte la documentación de PassLib).

Entonces, si una contraseña cifrada se almacena en el formato anterior, puede encontrar el algoritmo utilizado mirando el id; de lo contrario, es crypt el algoritmo DES predeterminado de (con un hash de 13 caracteres) o crypt "grande" DES (ampliado para admitir contraseñas de 128 caracteres, con hash de hasta 178 caracteres de longitud) o DES ampliado de BSDI (con un _ prefijo seguido de un hash de 19 caracteres).

Algunas distribuciones usan libxcrypt que admite y documenta bastantes métodos más:

  • y :sicrypt
  • gy :gost-yescrypt
  • 7 :cifrado
  • sha1 :sha1crypt
  • md5 :SunMD5

Otras plataformas admiten otros algoritmos, así que comprueba la crypt página de manual allí. Por ejemplo, crypt(3) de OpenBSD solo es compatible con Blowfish, que identifica mediante el id “2b”.


Linux
  1. Cómo encontrar si el disco es SSD o HDD en Linux

  2. Cómo auditar permisos con el comando de búsqueda

  3. Linux:¿Cómo encontrar el controlador de dispositivo utilizado para un dispositivo?

  4. ¿Qué algoritmo hash se usa para las contraseñas almacenadas en la sombra en 11.10?

  5. ¿Cómo encuentro el tamaño máximo de pila?

Cómo encontrar el número de puerto de un servicio en Linux

Cómo encontrar la dirección IP de una máquina virtual KVM

Cómo encontrar el tamaño total de un directorio en Linux

Cómo encontrar archivos con el comando fd en Linux

Cómo encontrar la lista de repositorios instalados en Linux

¿Cómo encuentro la ubicación MySQL my.cnf?