При использовании Perl-функции crypt шифруются только первые 8 символов. Есть ли способ заставить его использовать больше символов?
В качестве примера:
$crypted_password = crypt ("PassWord", "SALT");
а также
$crypted_password = crypt ("PassWord123", "SALT");
возвращает точно такой же результат. $crypted_password имеет точно такое же значение.
Хотелось бы использовать crypt, потому что это быстрое и простое решение для необратимого шифрования, но это ограничение не делает его полезным для чего-то серьезного.
crypt(3)
в системах unix (для которой perlcrypt
является оболочкой) просматривает только первые 8 байтов, да. (Плюс соль всего два символа). Если вы хотите повысить безопасность, вы должны использовать что-то еще. - person Shawn   schedule 19.04.2019perldoc -f crypt
: Создает строку дайджеста точно так же, как функция crypt(3) в библиотеке C....man 3 crypt
: ...взяв младшие 7 бит каждого из первых восьми символов ключа.... Таким образом, как он сказал: если вам нужно что-то более безопасное, не используйтеcrypt
. - person Steffen Ullrich   schedule 19.04.2019