【问题标题】:Crack sha256 when you know the pass form知道pass形式就破解sha256
【发布时间】:2015-03-29 04:23:20
【问题描述】:

知道密码形式的情况下,是否可以写出破解sha256哈希的代码?例如,密码形式为*-**********,长度为 12-13 个字符,并且:

  1. 第一个字符是从 1 到 25 的一个数字
  2. 第二个是连字符
  3. 在从第三个到末尾的每个字符中,您可以输入a...zA...Z0...9

在猜测每个 pass 之后,代码将 pass 转换为 sha256 并查看结果哈希是否等于我们的哈希,然后打印正确的 pass。

我知道所有可能的数字都是一个大数字(26+26+10)^10,但我想知道:

  1. 这样的代码可以写吗?
  2. 如果是,是否有可能在不到一天的时间内运行整个代码(因为我认为完成整个代码需要很长时间)?
  3. 由于我不能要求您为我编写代码,我如何以及在哪里可以要求此代码?

【问题讨论】:

  • 不要尝试破坏 satoshimines。

标签: sha256


【解决方案1】:

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

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

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

如果您能够每秒计算和检查十亿个密码,那么您将需要 20,982,484,146 秒来生成每个可能的哈希值。如果你现在开始,你将在大约 665 年后完成。

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

回答您的问题:

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

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

如果this article 中的数字正确,Raspberry Pi 每秒可以生成2*10^5 哈希值。我相信较新的 Raspberry Pi 比这更强大,所以我将把它加倍到 4*10^5。您需要每秒生成大约 10^15 哈希值才能在不到一天的时间内完成。

你需要250,000,000 Raspberry Pis。

【讨论】:

    猜你喜欢
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 2022-11-22
    • 2018-05-17
    相关资源
    最近更新 更多