Какой метод шифрования используется в /etc/shadow для систем GNU/Linux? Я хотел бы написать небольшую программу для личных целей, которая использует тот же API, но на данный момент я не знаю, с чего начать.
Заранее спасибо
Ответ 1
Используйте функцию crypt(3). В glibc используемый метод зависит от соли, если он начинается с:
$1 $: он использует MD5.
$5 $: используется SHA-256.
$6 $: он использует SHA-512.
$2a $: он использует blowfish, не поддерживается везде.
При проверке существующего пароля просто передайте зашифрованную форму как соль; будет использоваться только начальная часть $id $salt. При создании нового пароля инициализируйте id тем, что вам нужно, и поместите некоторые случайные символы в соль.