我必须实现一个简单的散列算法。
输入数据:
- 值(16 位整数)。
- 密钥(任意长度)。
输出数据:
- 6 位哈希(数字 0-63)。
要求:
- 如果您只有输入值而没有 key ,实际上应该不可能预测哈希值。更具体地说:如果我知道 x < M 的 hash(x),那么在不知道密钥的情况下应该很难预测 hash(M)。
可能的解决方案:
- 保持完整映射作为关键。所以密钥的长度为 2^16*6 位。我的情况太长了。
- 线性代码。Key 是一个生成矩阵。它的长度是16*6。但是使用几个已知的哈希值很容易找到生成矩阵。
还有其他可能吗?