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, é crypt
o algoritmo DES padrão (com um hash de 13 caracteres) ou crypt
o 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 crypt
manual lá. Por exemplo, o OpenBSDcrypt(3)
suporta apenas o Blowfish, que ele identifica usando o ID "2b".