Це задокументовано на сторінці crypt(3)"s man manpage" , яку ви можете знайти через shadow(5)manpage , або passwd(5)s . Ці посилання підходять для сучасних систем на базі Linux; опис є:
Якщо сіль - це символьна рядок, що починається з символів "$ id $", після чого рядок, необов'язково закінчується символом "$", то результат має вигляд:
$id$salt$encrypted
id ідентифікує метод шифрування, який використовується замість DES, і потім визначає, як інтерпретується решта рядка пароля. Наступні значення 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, також відомий як bcrypt, також визначено префіксами 2, 2b, 2xі 2y(див документації PassLib в ).
Отже, якщо хешований пароль зберігається у наведеному вище форматі, ви можете знайти алгоритм, який використовується, переглянувши ідентифікатор ; в іншому випадку це cryptалгоритм DES за замовчуванням (з 13-символьним хешем), або "великий" cryptDES (розширений для підтримки паролів 128 символів, хешами довжиною до 178 символів), або розширений BSDI DES (з _префіксом після цього хеш з 19 символами).
У деяких дистрибутивах використовується libxcrypt, який підтримує та документує ще кілька методів:
y: yescrypt
gy: gost-yescrypt
7: скрипт
sha1: sha1crypt
md5: SunMD5
Інші платформи підтримують інші алгоритми, тому перевірте cryptтам сторінку. Наприклад, OpenBSDcrypt(3) підтримує лише Blowfish, який він ідентифікує за допомогою ідентифікатора “2b”.