Мне нужно реализовать управление учетными записями для моего приложения, и я бы предпочел не использовать подпроцесс chpasswd
или иным образом не позволять незашифрованному паролю из памяти моего приложения.
Я хочу использовать putspent
с хэшем пароля, который я генерирую с помощью crypt
, но я не могу найти стандартную функцию для рандомизации соли для crypt
. Онлайн-поиск нашел только странные реализации функций хеширования, которые я бы не стал копировать в свой код. Есть ли стандартная функция, которая генерировала бы для меня соль?
В противном случае, было бы разумно просто повторно использовать текущую соль, хранящуюся в моем теневом файле? Я не мог понять, почему это БУДЕТ представлять угрозу безопасности (это не ослабит мой теневой файл против атаки радужной таблицы), это просто кажется неправильным, потому что в системной безопасности эмпирическое правило состоит в том, чтобы всегда рандомизировать все... (Пользователи добавляются системными утилитами)
glibc
расширенияcrypt()
, позволяющие, например. для шифрования SHA-256? - person   schedule 03.08.2017crypt
не является системным вызовом, поэтому гипотетическийnew_salt
тоже не является. Вы можете использоватьgetrandom
в последнем Linuxen, чтобы получить случайные байты для соли, а затем замаскировать эти символы без знака с помощью& 63
, сопоставить с[a-zA-Z0-9./]
для соли. - person Antti Haapala   schedule 03.08.2017