为什么同样的字串,在java里面,MD5加密后密文也不同

publicvoidtests(){Stringmyinfo="guanjia";Stringmyinfo2="guanjia";try{MessageDigestalg... public void tests(){
String myinfo="guanjia";
String myinfo2="guanjia";
try {

MessageDigest alga = MessageDigest.getInstance("MD5");
MessageDigest alga2 = MessageDigest.getInstance("MD5");
alga.update(myinfo.getBytes());
byte[] bytes = alga.digest();
alga2.update(myinfo2.getBytes());
byte[] bytes2 = alga2.digest();
System.out.println (bytes);
System.out.println (bytes2);
}
catch (Exception ex) {
}
}

结果是
[B@6084fa6a
[B@3a5476a7
展开
 我来答
713lib
2014-06-03 · TA获得超过252个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:175万
展开全部
你这个打印出来的是两个byte数组的地址,肯定不一样啦。
标准的md5算法,对同一个字符串加密后的密文绝对是相同的,你需要将两个byte数组的内容转换成字符串类型,然后打印就没问题啦。
yexiangzhaopia
2014-06-03 · TA获得超过112个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:88.1万
展开全部
你输出的不是密文,是密文保存在内存中的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古龙浦秋梵Zu
2014-06-03 · 超过10用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:20.8万
展开全部
那后面的符号好像是对象地址值,你把那两行打印换成这个看看
System.out.println (new String(bytes));
System.out.println (new String(bytes2));
追问
是的。。。额,没注意。多谢。。。分数给你了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Simon009
2014-06-03 · 超过15用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:35.1万
展开全部
当然不同了 MD5是私钥和公钥组合的
追问
无语,MD5是信息摘要算法、、、、真心无语
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式