Hash 来自已知算法的MD5哈希的字符串

Hash 来自已知算法的MD5哈希的字符串,hash,md5,Hash,Md5,我知道字符串和生成MD5哈希值的算法,是否可以从生成的哈希中获取字符串。否;根据定义,散列是一个单向过程 要从散列中派生原始字符串,必须强制执行不同的字符串,直到找到一个生成相同散列的字符串 这个过程可能需要很长时间,尽管存在已知哈希的数据库,这可以加快这个过程 您还应该知道,两个不同的字符串可以具有相同的哈希值。这称为散列冲突 散列的定义本身就是一个单向、唯一、加密的值。从数学上来说,考虑从哈希生成的字符串几乎不可能。 例外情况是: 散列算法中存在漏洞(MD5出现了这种情况,但仍难以破解) 强

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

否;根据定义,散列是一个单向过程

要从散列中派生原始字符串,必须强制执行不同的字符串,直到找到一个生成相同散列的字符串

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


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

散列的定义本身就是一个单向、唯一、加密的值。从数学上来说,考虑从哈希生成的字符串几乎不可能。

例外情况是:

  • 散列算法中存在漏洞(MD5出现了这种情况,但仍难以破解)

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

  • 使用已知短语/单词及其相关哈希值的查找表,例如:


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


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

    您的意思是说暴力是通过实际生成哈希并比较两个哈希是否相等来计算字符串的唯一方法。我在做一个练习,我知道字符串的一部分和生成哈希的算法,我必须找出字符串的另一部分。对我来说,用蛮力来计算字符串的其他部分似乎是不可能的。对于任何哈希算法,在某个地方,都有人对漏洞和破解方法了如指掌。因此,如果您有这些提示,那么可能是因为字符串“mystring”产生->01234567并不意味着“my”产生->01和字符串产生->234567”。。。你可能需要结合暴力、猜测,才能达到你需要的目的。