寻找散列函数

问题描述 投票:0回答:1

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

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

很高兴获得一些想法。

math random hash random-seed hash-function
1个回答
0
投票

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

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

[在字符和两位数字之间进行1:1映射,例如,您可以以]开头]

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

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

`Aa aa` -> `3365006565`

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.