Я смотрю на какой-то код, который я сам не написал. Код пытается хешировать пароль с SHA512 и использует только time()
как соль. Является ли time()
слишком простой солью для этого или этот код безопасен?
Спасибо за ответы и комментарии. Я подведу итог для новых читателей:
- соль должна быть разной для каждого пользователя, поэтому, если 2 пользователя регистрируются одновременно, их соли не будут уникальными. Это проблема, но не большая.
- но соль не должна быть каким-либо образом связана с пользователем, поэтому time() не является хорошей солью.
- "Используйте случайную, равномерно распределенную, высокую энтропийную соль". - Это глоток, поэтому какой код мог бы генерировать соль
random, evenly distributed, high entropy
?
Итак, как насчет того, чтобы заменить time() на случайную строку 32 char long. Случайную строку можно было бы генерировать по циклу 32 раза по набору символов алфавита. Звучит это хорошо?