知道通行证形式后破解sha256

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

当您知道密码的形式时,是否可以编写可以破解

sha256
哈希的代码?例如,密码形式为
*-**********
,长度为 12-13 个字符,并且:

  1. 第一个字符是 1 到 25 之间的一个数字
  2. 第二个是连字符
  3. 在从第三个到最后的每个字符中,您可以放置
    a...z
    A...Z
    0...9

猜测每个通道后,代码将通道转换为

sha256
并查看结果哈希是否等于我们的哈希,然后打印正确的通道。

我知道所有可能的数字都是一个很大的数字

(26+26+10)^10
但我想知道:

  1. 这样的代码可以写吗?
  2. 如果是的话,是否有可能在不到一天的时间内运行整个代码(因为我认为完成整个代码需要很多时间)?
  3. 既然我不能要求你为我写一个代码,那么我如何以及在哪里可以要求这个代码?
sha256
2个回答
4
投票

无论您了解多少有关明文的信息,您都无法“破解”SHA256 哈希(假设破解是指从哈希中导出明文)。即使您知道密码,您也无法确定任何反转哈希的过程。用技术术语来说,没有已知的方法可以对 SHA256 哈希执行原像攻击

这意味着您必须猜测或暴力破解密码:

您有一个前缀,可以是

[1-25]-
中的任何值以及
[a-zA-Z0-9]
中的 10 个附加字符。这意味着可能的密码总数为:
25 * 62^10
20,982,484,146,708,505,600

如果您每秒能够计算和检查十亿个密码,那么您将需要

20,982,484,146
秒来生成每个可能的哈希值。如果你现在开始,你将在大约 665 年后完成。

如果您能够利用更多的计算能力并每秒生成一万亿个哈希值,那么只需要半年多一点的时间。好消息是计算哈希可以并行完成,因此很容易利用多台机器。坏消息是这种计算能力并不便宜。

回答您的问题:

  1. 是否可以编写这样的代码?可以编写一个程序来迭代整个可能的密码范围,并根据您想要确定其明文的哈希值进行检查。
  2. 如果是,是否可以在不到一天的时间内运行整个代码。是的,如果您可以计算并检查每秒
    10^15
    哈希值。
  3. 我如何以及在哪里可以索要此代码?这是您遇到的最小问题。

幸运的是,由于比特币使用 sha256,因此很容易找到生成所需哈希数所需的计算能力的粗略数字。

如果本文中的数字正确,Raspberry Pi 每秒可以生成

2*10^5
哈希值。我相信较新的 Raspberry Pi 比这更强大,所以我将其加倍到
4*10^5
。您需要每秒生成大约
10^15
哈希值,才能在不到一天的时间内完成。

你需要

250,000,000
树莓派。


0
投票

可以租用亚马逊ec2机器来做这项工作吗,至少它们是高速的?

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