我正在使用coldfusion,我想为我的密码生成一个随机盐场。我想知道CreateUUID()函数在这里是否有用。我发现了许多使用单独函数创建盐串的例子;但是为什么要使用rand()或CreateUUID()函数呢?我不确定。
这是一种矫枉过正或好主意吗?或者我应该使用rand()还是时间戳?
答案 0 :(得分:7)
一个好主意 - CreateUUID保证唯一性,而不是随机性;如果您对CreateUUID进行了统计分析,那么很可能不会认为密码学的分布足够随机,因为它没有明确地设计。
例如,CreateUUID的第一个 n 字节是您的MAC地址 - 即每个盐的总是相同的。通过这样做,您可以显着减少盐的熵量,从而使它们更容易破裂。如果可能的话,使用库来处理整个身份验证方案,如果没有,则使用真正的rand()函数。