|
|
1
0
哈希例程是多种多样的,通常根据预期输入分布的细节、哈希值的用途和生成它们的速度进行选择。 然而,您可以使用Ruby标准库中的现有哈希例程。大多数加密哈希函数的输出是一个字节字符串,可以很容易地解释为整数。出于您的目的,您只需要通过限制长度来确定合适的最大值。 密码散列在您的情况下也有优势,即它们可以生成高质量的伪随机函数——给定两个仅相差一位的输入,结果将不相关。 HMAC构造将哈希函数与两个输入(消息和秘密)组合在一起。使用您的输入号码作为消息,使用密钥作为密码,可以按原样使用该功能。
有
没有什么
对于大多数标准哈希函数使用整型输入,这是一个特别的问题,它在整体上只对字节进行排序,而忽略了数据类型。考虑到您似乎不关心哈希输出的特定值,
您只需将数字转换为
这样地:
该结果适用于校验和,或者适用于希望值的伪随机重新分布的算法。它有一个缺陷,在需要生成许多值的情况下,速度不会很高。 如果你对较低质量的随机性感到满意,你可以把它简化得多——例如,你可以使用线性同余生成器。这可能比上述更快,但可能会在输出中显示出不需要的模式。 |
|
|
AlwaysneedsHelp · 如何减少此处使用的内存量? 2 年前 |
|
|
snake123 · 滚动到不同页面的锚点,URL中没有# 2 年前 |
|
|
Jan · 密码salt是否应存储在数据库中 2 年前 |
|
|
birb · RFC-6238 TOTP实现与示例不匹配 2 年前 |
|
|
AishaWho · 请解释res=id^(id>>>32) 3 年前 |
|
|
landings · 如何散列整数的环形缓冲区? 3 年前 |