首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个过时或不安全的哈希算法,它的输出可以很容易地反转回输入?

是否有一个过时或不安全的哈希算法,它的输出可以很容易地反转回输入?
EN

Cryptography用户
提问于 2019-03-19 00:49:05
回答 1查看 261关注 0票数 0

我正在寻找一种哈希算法,它可以在合理的时间(一天或更短的时间内)使用一台像样的消费计算机将输出反转回输入。如果有人对此有任何了解,我们将不胜感激。

编辑:在阅读了这篇文章中的一些评论和答案之后,我觉得我应该澄清一下:我正在寻找一种哈希算法,在该算法中,将哈希反转到比哈希大一个字节的输入中相对容易。例如,如果哈希输出是32字节,而输入是33字节,我想知道是否有散列算法,在这种情况下可以将输出反转到输入中。

EN

回答 1

Cryptography用户

发布于 2019-03-19 12:36:22

根据您想要做的事情,也许您可以使用一个加密散列函数并截断它。将截断的长度调整为您希望预图像计算的工作量。这是创建工作证明机制的有效方法。例如,如果希望要求一方执行2^{m+n}操作,其中2^m是散列非常短的字符串的估计成本,那么:

  1. 生成一个随机的s+n-bit字符串并计算其哈希h
  2. 发送散列h和字符串的第一个s位,并请求一个预映像。
  3. 读取一个字符串并检查它的散列是否为h

(盐分长度s需要足够长,以防止预计算可能的输入。)

如果任何密码散列函数都处于良好状态,即使是像MD5这样的大多数性能较差的哈希函数,查找预图像的最快方法也是在所有n-bit字符串中强制搜索。

如果工作证明不是你想要的,那么也许你可以使用一个非加密散列,例如一个启联。通常,不是专门设计为密码散列的散列函数发生意外碰撞的概率很低(但很容易故意创建碰撞),而且很容易反转。

当然,“反转”哈希将找到一个预图像,而不一定是您开始使用的字符串。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/68111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档