java - 如何解密值

标签 java encryption digest-authentication cryptographic-hash-function

其实我想从加密的密码中取回密码。

密码加密如下:

MessageDigest md = MessageDigest.getInstance("SHA");
md.reset();
byte[] encryptedBinarySource = md.digest(source.getBytes("UTF-8"));

如何解密encryptedBinarySource的值?

最佳答案

你不能。 SHA 是一种单向加密。能够解密它会破坏它的唯一目的。而是使用双向加密算法。或者,如果它打算加密敏感信息,例如您的密码,那么您应该以相同的方式加密新输入的密码,并将其结果与您存储在某处的原始加密密码进行比较。

但是有所谓的rainbow tables这使您(和黑客!)能够基于哈希揭示原始值。然而,对于 SHA,成功匹配的机会远低于 MD5。

关于java - 如何解密值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861865/

相关文章:

java regex 如何匹配某个不是某个子字符串的字符串

java - 访问者模式可以包含一些状态吗?

c - C 中的 AES-GCM 解密

java - 使用 persistence.xml 的 JPA 的数据库连接位于哪里?

java - Java WS 中的 session 信息保存在哪里

asp.net-core - ASP.NET Core/Kestrel 中的摘要式身份验证

java - 多个 JVM 的并发 HashMap 可扩展性

http - 摘要认证和基本认证有什么区别?

authentication - HTTP 基本身份验证、摘要身份验证和 Oauth?

javascript - SignalR 从服务器返回字符串到客户端