寻找哈希函数

时间:2020-05-03 13:04:19

标签: math random hash random-seed hash-function

我正在寻找具有以下属性的哈希函数

  1. 它在0和1之间均匀地映射任意字符串
  2. 哈希函数输出与字符串长度无关
  3. 哈希函数接受随机种子
  4. 对于给定的随机种子,从字符串到(0,1)的映射是确定性的,如果Alice和Bob为给定的字符串和随机种子计算哈希值,则它们都将获得相同的值
  5. 我不担心安全性。我不在乎理论上是否有人可以根据随机种子和哈希值重建字符串集

很高兴得到一些想法。

1 个答案:

答案 0 :(得分:-1)

如果您不喜欢这种“解决方案”,请解释为什么不这样做,您会得到更好的答案。

获取ASCII码表并丢弃非字符(例如'bell')的代码,您将剩下大约100个字符。

在字符和2位数字之间建立1:1映射,例如,您可以以

开头
space <-> 00
! <-> 01
A <-> 33
...
Z <-> 58
...
a <-> 65

我希望你能明白。现在,以显而易见的方式对字符串中的前32个(或任何其他字符)进行编码,例如

`Aa aa` -> `3365006565`

,并用00填充所有少于32个字符的字符串。 (我不必为示例输入所有的00。)

生成[1,64]范围内的随机数,并使用该数将数字字符串向左旋转该位数。

在左边剩下的小数点上加一个小数点,您便会找到所需的实数。

我相信这可以满足您的要求。

相关问题