我可以将第2个散列这样的sha256散列反转为第1个散列吗?
第二个哈希值是由sha256(1)生成的,因此可以反转到第一个哈希值吗?
答案 0 :(得分:1)
散列是一种单向过程。如果哈希算法易于逆转,那么它将是不安全的。要回答您的问题,不,不可能“ unhash” 2并获得1。要“破解”第二个哈希,您将不得不通过计算其他字符串的sha256并将结果与2进行比较来强行使用它。如果它们匹配,则您(可能)拥有原始字符串。
答案 1 :(得分:0)
简而言之,截至2019年,没有。
简而言之,密码散列函数是一种确定性但随机的函数。确定性意味着相同的输入始终具有相同的输出,而随机性则意味着输出是不可预测的。在密码学中,我们通过
考虑哈希函数的安全性x'
使得{ {1}},如果输入任意未知的y。h(x') = y
,在计算上是不可行的第二张原图x
,例如x' != x
。h(x) = h(x')
,x
,这些输入散列到同一输出,即x'
。您正在寻找的是原像。对于那些冲突,找到了像MD4和SHA-1这样的加密哈希函数。但是它们都仍然具有前置和第二副图像抵抗力。
对于Sha256,没有已知的中学前碰撞攻击。它被视为安全的哈希函数。
您可能会为SHA-256找到一些彩虹表,其中可能包含您的哈希值,但可能由于空间太大而无法覆盖。
答案 2 :(得分:0)
Sha256是哈希函数,如维基百科https://en.wikipedia.org/wiki/Cryptographic_hash_function所定义:
理想的加密哈希函数具有五个主要属性:
- 这是确定性的,因此同一条消息始终导致相同的哈希值
- 快速计算任何给定消息的哈希值
- 无法通过其哈希值生成消息,除非尝试所有可能的消息
- 对邮件进行很小的更改应该会广泛更改哈希值,以使新的哈希值看起来与旧的哈希值不相关
- 找到两个具有相同哈希值的不同消息是不可行的
根据定义,只要您不能反向输入,哈希函数就很有用。