解密MD5哈希值

6

是否有任何方法可以解密已加密的MD5字符串,只给定密钥?


8
用什么加密?MD5算法是哈希算法,不是加密算法。 - SilentGhost
MD5哈希是一种单向函数。 - Andrey Vlasovskikh
2
虽然问题的前提存在缺陷(哈希是“单向行程”,即它不是双射函数,并且它不涉及密钥,只涉及输入消息),但回答超出了仅仅陈述“这不是哈希的用途”的范畴,探讨了寻找满足特定哈希值的消息的方法,以及使用“盐”来防止字典/暴力攻击的方法。有趣! - mjv
@mjv,不具有双射性并不是使MD5成为“加密哈希函数”的属性。例如,f = x * x 不是双射的,但它不是“单向行程”,因为如果我说f(x)= 4,您会知道x只能是-2或2,而这种情况在加密哈希函数中是不会发生的。希望我表达清楚了 ;) - João Portela
7
为什么要踩这个问题?虽然他一开始不理解MD5是什么,但这个问题仍然是有效的。 - ibz
2
我同意@ibz的观点。此外,哈希也是加密的一种形式。哈希值是加密的,而正确的术语应该是“加密哈希”。 - cregox
5个回答

22

MD5是一种单向哈希算法。它无法被解密。解密MD5哈希的最接近方法是对预先生成的彩虹表进行查找。另外,我不确定你所说的“我有密钥”是什么意思。在MD5哈希中没有“密钥”。也许你想到了盐值?如果你的数据在哈希之前包含了盐值,那么使用彩虹表的方法可能并不实用。


5

4

MD5不是加密算法,只是一种哈希算法。请阅读有关MD5密码哈希函数的内容。

要在Python中创建字符串的MD5哈希值,请按照以下步骤执行:

import hashlib
m = hashlib.md5()
m.update("String to Hash")
echo m.digest()
# '\xed\xa5\x8bA-nU\xa2\xee\xbb[_s\x130\xbd'
echo m.hexdigest() # its more common to show hashes as a hex string
# 'eda58b412d6e55a2eebb5b5f731330bd'

4

消息摘要算法5是一种广泛使用的加密哈希函数,具有128位哈希值。加密有两种方式:加密-解密,哈希只有一种方式-无法解密。

但是,对于数据库哈希可以解决此问题。

请参阅以下网站:

www.rednoize.com-数据库中有50,709,274个哈希值

www.md5oogle.com-数据库中有6,353,625个哈希值

www.hashmash.com-数据库中有1,611,191个哈希值

www.gdataonline.com-数据库中有1,155,613个哈希值

www.md5decryption.com-数据库中有872,145个哈希值

www.md5decrypter.com-数据库中有583,441个哈希值

www.md5decrypter.co.uk-数据库中有41,568,541个哈希值

www.macrosoftware.ro-数据库中有5,403个哈希值


2

MD5是一种非对称哈希算法,而不是加密机制。你不能“解密”MD5。如果你知道哈希内容仅限于(短)一组可能性,你可以使用彩虹表尝试暴力破解哈希,但这在一般情况下不起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接