【问题标题】:Reversing random generation function反转随机生成函数
【发布时间】:2021-04-12 19:44:46
【问题描述】:

我有一个随机生成函数,它根据种子创建一串随机数。

hash_ = '1'
for i in range(5):
    m = hashlib.sha256()
    m.update(hash_.encode("utf-8"))
    hash_ = m.hexdigest()
    print(hash_)

这个输出

6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b
e0bc614e4fd035a488619799853b075143deea596c477b8dc077e309c0fe42e9
d6a804981ea7ce374acc21c9a8bf82f50b684b0ea4bdf8b26a7a775291aaf7a6
ad376767fc04814220cc25c79b2777cd14704f23f1830318b5bd9eb97e4fedf6
b80de1ab9d0903823cc10fd5b2ba57616b339a69313b4d3e23363dbea6579cd6

每次都会输出这个

我的问题是它是否可能,我怎么可能扭转这个功能。 所以我开始这个功能: hash_ = b80de1ab9d0903823cc10fd5b2ba57616b339a69313b4d3e23363dbea6579cd6 它输出的最后一个哈希是: 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

只是想知道这是否可能感谢所有帮助:)

【问题讨论】:

  • 您不会反转哈希,它们被明确设计为不可逆。
  • 加密哈希是专门设计的,因此它不应该是可能的。事实上,它可以通过令人难以置信的努力和足够的时间(数千年甚至更多!)来计算。实际答案:不。
  • 耻辱 :( 感谢您的帮助
  • 取决于hash_的初始值。如果它很短并且可能在字典中,则使用该代码编写蛮力程序相当容易。请记住,Python 通常对于这样的任务来说太慢了,因为它是被解释的。
  • “耻辱”,不,相信我,你不希望他们那样。如果你希望它是可逆的,你可以使用加密,hashing != encryption

标签: python algorithm encryption hashcode


【解决方案1】:

你可以使用for .. else ...语法。
在所有循环完成后(如果没有错误),将执行代码。
像这样:

hash_ = '1'
for i in range(5):
    m = hashlib.sha256()
    m.update(hash_.encode("utf-8"))
    hash_ = m.hexdigest()
else:
    print(hash_)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    相关资源
    最近更新 更多