Шифрование паролей в Linux

Сегодня обратил внимание, что у созданного пользователя в системе Ubuntu Server в файле /etc/shadow очень длинный хэш (96 символов) вместо привычного знакомого MD5 (32 символа), и признак алгоритма $6$ – незнаком. Поиск в интернете дал информацию по процедуре crypt().

Вкратце, признаки алгоритмов шифрования паролей (записи в файлах /etc/passwd, /etc/shadow или /etc/master.passwd):

1) Без признаков – DES (практически давно не используется, неадекватно слаб по сегодняшним меркам);
2) _ – Модификация имплементации алгоритма DES, сделанная BSDi;
3) $1$ – MD5 (наиболее популярный, но имеет математические уязвимости);
4) $2$, $2a$ – Blowfish (используется преимущественно в OpenBSD, FreeBSD(?));
5) $5$ – SHA-256;
6) $6$ – SHA-512

Пока SHA-512 наиболее сложный для атак перебором, лет через ндцать ситуация вполне может поменяться.

4 Comments

GoshaOctober 28th, 2009 at 12:44

Тоесть как я понимаю чтоб зашифровать пароль нужно в терминале набрать crypt(6) passwd

тоесть 6 – это $6$ – SHA-512 а passwd эт пароль который я хочу зашифровать … Я правильно понимаю ?

ratOctober 28th, 2009 at 19:25

Нет, crypt() – системная функция, напрямую в терминале она не вызывается. Пароль шифрует сама система по указанному алгоритму.
Командой crypt или mcrypt можно зашифровать файлы, но не пароли.

koxNovember 7th, 2011 at 16:33

а как же тогда пароль зашифровать?
именно тот который я хочу??

Плюшевый КрысNovember 7th, 2011 at 19:26

kox, в системе пароли не хранятся (во всяком случае в современыx), только xеши к ним. Xеш позволяет проверить что пароль правильный, но по хешу восстановить пароль нельзя. И зачем его шифровать? Системная команда passwd все сделает сама.

Leave a comment

Your comment