Если случайные данные криптографически надежны, как и должно быть, то нет, вам не нужно их хэшировать.
Если ваши данные не являются криптостойкими, например, значения, полученные с помощью rand()
, то хеширование может быть немного более безопасным, но выгода минимальна, и вам просто нужно использовать более сильный PRNG.
В этом случае единственный возможный недостаток безопасности - если кто-то
- использовал sql инъекцию для извлечения всех паролей и солей из базы данных,
- Нашел закономерность в поколении соли,
- Сделан радужный стол на основе предсказанных солей,
- Получить данные из вашей базы данных снова,
- Используйте радужную таблицу для взлома большого количества паролей из базы данных.
Так что в принципе нет, это не добавляет безопасности. Кроме того, в приведенном выше коде используется / dev / urandom, который обеспечивает очень сильную случайность, поэтому преимущество еще больше уменьшается, поскольку перечисленный выше шаг 2 более или менее невозможен. Единственными организациями, которые находятся под этим сильным огнем, являются АНБ, ЦРУ и подобные группы.