【发布时间】:2011-02-01 11:18:12
【问题描述】:
其实我想从加密后的密码中取回密码。
密码加密如下:
MessageDigest md = MessageDigest.getInstance("SHA");
md.reset();
byte[] encryptedBinarySource = md.digest(source.getBytes("UTF-8"));
如何解密encryptedBinarySource的值?
【问题讨论】:
-
你不能。这就是
digest的全部意义所在。无论输入大小如何,输出大小都是固定的,而且很小……所以在这个过程中会丢失很多信息。 -
不仅是你,还有很多破解者都想这么做。如果您需要比较某个值,请加密(消化)您要比较的值..然后与加密的密码进行比较:) 那是唯一的方法。 请不要改变主意,在这个问题上使用字符串纯密码
-
但是,如果您可以尝试使用不同的输入获得相同的输出,则依靠 SHA 冲突...也许使用字典...这就是使用盐的原因。而这也是一个难题……
标签: java encryption digest-authentication cryptographic-hash-function