我正在寻找一种将字符串放置到动态数字数字的方法。我不想修剪现有的哈希(例如SHA),而是要生成一个可以指定输出字符数量的哈希。如果输入小于字符数量,它也应该有效。它不需要是密码学,只需要保证相同输入的同一哈希即可。我一直在Wiki上浏览Hash函数,但它们似乎都具有动态长度的固定长度,具体取决于输入。
您正在寻找的内容可能是可扩展的输出功能(xof's)!
这些哈希功能没有预定义的输出长度,并且可能会使用海绵功能进行构造。
SHA-3家族由四个加密哈希函数[...]和两个可扩展输出功能(XOFS)组成,称为 shake128 和 shake256 。
您可以在https://emn178.github.io/online-tools/下试用。对于输出位选择您的所需号码或字符。
有关Java实现
,但是请注意碰撞如果哈希长度很小。