本文介绍了是否有可能从MD5和Java恢复消息?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码。
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);
//现在,如果您真的想要完整的32个字符,我们需要将其填充。 $(b)b while(hashtext.length() hashtext =0+ hashtext;
}
现在我想将它转换回原始字符串。是否有可能?
解决方案
这对于MD5是不可能的。这是一个单向。
为了为了能够加密和解密,您需要使用像AES这样的加密/解密算法。
参见获取更多信息。
I have the following code.
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;
}
Now I want to convert it back to the original string. Is it possible?
解决方案
This is not possible with MD5. It is a one-way hash function.
In order to be able to encrypt and decrypt, you need to use an encryption/decryption algorithm like AES.
See Java™ Cryptography Architecture (JCA) Reference Guide for more information.
这篇关于是否有可能从MD5和Java恢复消息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!