Це задокументовано на сторінці 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-символьним хешем), або "великий" crypt
DES (розширений для підтримки паролів 128 символів, хешами довжиною до 178 символів), або розширений BSDI DES (з _
префіксом після цього хеш з 19 символами).
У деяких дистрибутивах використовується libxcrypt, який підтримує та документує ще кілька методів:
y
: yescrypt
gy
: gost-yescrypt
7
: скрипт
sha1
: sha1crypt
md5
: SunMD5
Інші платформи підтримують інші алгоритми, тому перевірте crypt
там сторінку. Наприклад, OpenBSDcrypt(3)
підтримує лише Blowfish, який він ідентифікує за допомогою ідентифікатора “2b”.