I'm using coldfusion and I would like to generate a random salt field for my passwords. I was wondering if a CreateUUID() function is useful here. I found many examples which use a seperate function to create the salt string; but why do this when you could use rand() or CreateUUID() functions instead? I'm not sure.
Is it an overkill or a good idea? Or should I use rand() or a timestamp instead?
Это не хорошая идея - CreateUUID гарантирует уникальность, а не случайность; если бы вы провели статистический анализ CreateUUID, скорее всего, это распределение не считалось бы достаточно случайным для криптографии, потому что оно не было специально разработано таким образом.
Например, первые n байт CreateUUID — это ваш MAC-адрес, то есть всегда один и тот же для каждой соли. Сделав это, вы значительно уменьшили количество энтропии, которое имеют ваши соли, тем самым облегчив их взлом. Используйте библиотеки для обработки всего сценария аутентификации, если это возможно, а если нет, используйте настоящую функцию rand().