Это отражено в crypt(3)«странице руководства сек , которые вы можете найти с помощью shadow(5)«s страница руководства , или 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: scrypt
sha1: sha1crypt
md5: SunMD5
Другие платформы поддерживают другие алгоритмы, поэтому проверьте cryptстраницу руководства там. Например, OpenBSDcrypt(3) поддерживает только Blowfish, который он идентифицирует, используя идентификатор «2b».