Isso está documentado no crypt(3)'manpage s , onde pode encontrar através shadow(5)da página de manual , ou passwd(5)'s . Esses links são apropriados para sistemas modernos baseados em Linux; a descrição existe:
Se salt for uma sequência de caracteres iniciada com os caracteres "$ id $" seguida por uma sequência opcionalmente terminada por "$", o resultado terá o formato:
$id$salt$encrypted
id identifica o método de criptografia usado no lugar do DES e, em seguida, determina como o restante da cadeia de senha é interpretada. Os seguintes valores de id são suportados:
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, também conhecido como bcrypt, também é identificado por prefixos 2, 2b, 2x, e 2y(veja a documentação do PassLib ).
Portanto, se uma senha com hash estiver armazenada no formato acima, você poderá encontrar o algoritmo usado observando o ID ; caso contrário, é crypto algoritmo DES padrão (com um hash de 13 caracteres) ou crypto DES “grande” (estendido para suportar senhas de 128 caracteres, com hashes de até 178 caracteres) ou DES estendido BSDI (com um _prefixo seguido por um hash de 19 caracteres).
Algumas distribuições usam libxcrypt, que suporta e documenta alguns outros métodos:
y: yescrypt
gy: gost-yescrypt
7: scrypt
sha1: sha1crypt
md5: SunMD5
Outras plataformas suportam outros algoritmos, portanto verifique a página de cryptmanual lá. Por exemplo, o OpenBSDcrypt(3) suporta apenas o Blowfish, que ele identifica usando o ID "2b".