实际上我想从加密密码中取回密码。
密码加密如下:
MessageDigest md = MessageDigest.getInstance("SHA");
md.reset();
byte[] encryptedBinarySource = md.digest(source.getBytes("UTF-8"));
如何解密encryptedBinarySource
的值?
答案 0 :(得分:5)
你做不到。 SHA是单向加密。能够解密它会打破它的唯一目的。而是使用双向加密算法。或者,如果您打算在您的情况下加密密码等敏感信息,那么您应该以相同的方式加密新输入的密码,并将其结果与您存储在某处的原始加密密码进行比较。
然而,有一种所谓的rainbow tables使你(和黑客!)能够根据哈希显示原始值。对于SHA,成功匹配的机会远低于MD5。
答案 1 :(得分:3)
您无法解密哈希。哈希是一种单向函数。散列密码确实用于不存储实际密码(您散列用户引入的密码并与存储的散列进行比较)