【问题标题】:String from MD5 Hash from known algorithm来自已知算法的 MD5 哈希的字符串
【发布时间】:2018-03-16 02:59:05
【问题描述】:

我知道生成MD5哈希值的字符串和算法,是否可以从生成的哈希中取回字符串。

【问题讨论】:

    标签: hash md5


    【解决方案1】:

    哈希的定义是一个单向的、唯一的、加密的值。从数学上讲,几乎不可能取回从散列生成的字符串。

    例外情况是:

    1. 散列算法中的一个漏洞(这发生在MD5上,但仍然很难破解)

    2. 强制(猜测)字符串,直到找到匹配的哈希

    3. 使用知名短语/单词的查找表及其相关哈希值,例如:https://crackstation.net/

    【讨论】:

    • 你的意思是说暴力是通过实际生成哈希并比较两个哈希是否相等来找出字符串的唯一方法。我正在做一个练习,我知道部分字符串和生成哈希的算法,我必须找出字符串的其他部分。用蛮力计算字符串的其他部分对我来说似乎是不可能的。
    • 对于任何散列算法,某个地方的某个人都对漏洞和消除漏洞的方法有深入的了解。因此,如果您有这些提示,则可能只是因为字符串“mystring”yield -> 01234567 并不意味着“my”yields -> 01 和字符串yields ->“234567”......你可能会需要结合蛮力,猜测,才能到达你需要的地方。
    【解决方案2】:

    没有;根据定义,散列是一种单向过程。

    如果不强制使用不同的字符串,则无法从哈希中导出原始字符串,直到找到一个生成相同哈希的字符串。

    此过程可能需要很长时间,尽管存在已知哈希的数据库可以加快该过程。

    您还应该知道,两个不同的字符串可以具有相同的哈希值。这称为哈希冲突。

    【讨论】:

      【解决方案3】:

      MD5 是加密哈希函数。它产生一个 128 位的哈希值。它是 32 位十六进制数字的文本格式。 用于验证数据完整性。

      不,您无法从哈希值中获取实际值。我认为您正在寻找加密和解密机制。

      【讨论】:

        猜你喜欢
        • 2012-10-10
        • 2012-07-12
        • 2011-12-20
        • 2011-04-26
        • 1970-01-01
        • 2011-08-24
        • 2014-09-02
        • 2011-06-14
        • 2015-08-13
        相关资源
        最近更新 更多