【问题标题】:Is it possible to recover message from MD5 and Java? [closed]是否可以从 MD5 和 Java 中恢复消息? [关闭]
【发布时间】:2013-03-09 10:03:25
【问题描述】:

我有以下代码。

String plaintext = "HelloWorld";
MessageDigest m = MessageDigest.getInstance("MD5");
m.reset();
m.update(plaintext.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1,digest);
String hashtext = bigInt.toString(16); 

// Now we need to zero pad it if you actually want the full 32 chars.
while(hashtext.length() < 32 ){
    hashtext = "0"+hashtext;            
}

现在我想将它转换回原始字符串。有可能吗?

【问题讨论】:

  • 你听说过 java.security 包吗?
  • 为什么这个标签是“md5”?您对 MD5 有疑问吗?那不是加密算法,而是哈希算法。
  • 是的,这是可能的,但请注意md5(您使用的标签)不是加密/解密算法,而是单向哈希算法
  • @PrasadPofali 我不确定该评论是否会对否决票产生积极影响:)
  • @PrasadPofali 您必须了解的是,MD5 是一种单向哈希。你不应该反向散列它。如果你想获得原始纯文本,请使用一些加密/解密技术。

标签: java hash md5


【解决方案1】:

我已经试过了。现在我想将其转换回原始字符串。

这对于 MD5 是不可能的。这是一个单向hash function

为了能够加密和解密,你需要使用像AES这样的加密/解密算法。

更多信息请参见Java™ Cryptography Architecture (JCA) Reference Guide

【讨论】:

    猜你喜欢
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2012-12-21
    • 2019-08-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多