java中MessageDigest加密之后怎么还原出原字符串

 我来答
geloor
2019-05-10
知道答主
回答量:3
采纳率:0%
帮助的人:1124
展开全部
摘要算法不能算是加密算法,是不可逆的,所以用MessageDigest计算出的摘要值无法还原出原字符串,这是理论上决定的。如果楼主想还原字符串,就必须使用加密算法(如DES、SM4等)而不是摘要算法(如MD5、SHA-1等),加密算法可以解密,同时注意加密解密必须使用密钥。
wm2008nl
2011-07-15 · 超过71用户采纳过TA的回答
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:180万
展开全部
如果是MD5散列函数的结果,你拿到结果后转换成hex形式,然后去网上查下原值的。查一下就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stcxlmszz
2011-07-16 · TA获得超过348个赞
知道答主
回答量:434
采纳率:0%
帮助的人:0
展开全部
import java.security.MessageDigest;

public class SpiderMD5 {
public final static String MD5(String s) {
String result = "";
char hexDigits[] =
{ '0', '1', '2', '3',
'4', '5', '6', '7',
'8', '9', 'a', 'b',
'c', 'd', 'e', 'f' };
try {

byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte b = md[i];
str[k++] = hexDigits[b >> 4 & 0xf];
str[k++] = hexDigits[b & 0xf];
}
result = new String(str);
} catch (Exception e)

return result;
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式