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