是否存在一类哈希算法,无论是理论上的还是实用的,因此根据以下给出的定义,该类中的算法可以被认为是“自反的”:
- hash1 = algo1(“输入文字1”)
- hash1 = algo1(“输入文字1” + hash1)
+运算符可以是串联或任何其他指定的操作,以将输出(hash1)组合回输入(“输入文本1”),以便算法(algo1)将产生完全相同的结果。即输入和输入+输出冲突。+运算符必须合并两个输入的全部,并且算法不得舍弃部分输入。
该算法必须在输出中产生高熵。在密码上很难将输出反转回一个或两个可能的输入,但不一定如此。
我不是数学家,但是一个很好的答案可能包括为什么这样一类算法不存在的证明。但是,这不是一个抽象的问题。我真的有兴趣在系统中使用这种算法(如果确实存在)。
这是一个问题的重复副本,该问题最初发布于/programming/4823680/reflexive-hash
相关新闻:关联的哈希混合
—
伊藤刚(Tsuyoshi Ito)
您是否对所有输入文本或一个输入文本都拥有此属性感兴趣?如果您希望它能容纳所有输入文本,那么构造冲突在设计上是微不足道的,因此我认为不能将其视为良好的哈希函数。
—
彼得·泰勒
有人想对包含自己的哈希值的文件进行哈希处理!;)
—
Raphael11年
@Peter Taylor-我正在寻找一个函数,该函数按任意输入文本所述工作。每个不同的输入都会产生一个哈希,该哈希通常与其他所有可能的输入具有较高的互熵。就像一个很好的不可逆的散列函数一样。但是,我要查找的哈希函数不需要具有不可逆性。高熵就足够了。