如何解密PostgreSQL中md5方法加密的代码

如何解密PostgreSQL中md5方法加密的代码,postgresql,Postgresql,如何解密PostgreSQL中md5方法加密的代码 例如:md5(“logesh”)返回'82e05c4839aba7c63781489bec50dd1' 我怎样才能解密这段代码。你不能。MD5不是加密。这是一个好主意。要弄清楚明文可能是什么,但对于该散列,它只是一个可能的明文。它的设计既慢又难逆转,而且不可能以1:1逆转 PostgreSQL在带有加密密码的中使用“encrypt”有点不正确,应该是带有哈希密码的。但现在改变已经太迟了 如果您想要加密,请查看哪些提供了AES-128例程等,或者

如何解密PostgreSQL中md5方法加密的代码

例如:
md5(“logesh”)
返回
'82e05c4839aba7c63781489bec50dd1'


我怎样才能解密这段代码。

你不能。MD5不是加密。这是一个好主意。要弄清楚明文可能是什么,但对于该散列,它只是一个可能的明文。它的设计既慢又难逆转,而且不可能以1:1逆转

PostgreSQL在带有加密密码的
中使用“encrypt”有点不正确,应该是带有哈希密码的
。但现在改变已经太迟了


如果您想要加密,请查看哪些提供了AES-128例程等,或者您的加密和解密客户端在日志中暴露密钥,
pg_stat_语句
etc不是一个问题。

简而言之,您不能。这就是md5散列的全部目的。md5的思想是能够比较加密令牌,而不可能进行未加密。我相信每个散列都会匹配多个源字符串,但通过使用可能答案的字典,实际上很可能从蛮力中获得正确的源字符串。这就是为什么密码散列只被认为是减慢黑客的速度,而不是阻止他们(即使这样,也只有在你先“盐”密码并应用大量“拉伸”的情况下)。例如@Dave,一个大的彩虹表可以快速提供令人印象深刻的结果。如果它是正确的明文字符串,只要它产生相同的散列结果,这一点都无关紧要。@CraigRinger这就是为什么我说,如果你对密码进行了加密(正确,即每个密码都有自己的加密,而不是一个加密)。事实上,我认为盐渍是专门为了阻止彩虹桌而发明的,尽管我可能在历史上弄错了。任何匹配都是正确的,尽管获取“正确”值对于希望在其他站点(可能共享或不共享相同的哈希方法)上尝试您的凭据的黑客非常有用也许您可以添加这样一个信息,即通常会将另一个哈希值与数据库中的哈希值进行比较,例如验证密码,而不是解密哈希值。回答得好:)