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