为了账号安全,请及时绑定邮箱和手机立即绑定

最新回答 / 宋兆恒
前端后端都是应该要加密的,前端可以发送一个hidden域的加密后的password到后台,后台再对这段数据进行再次加密的处理,两端的加密算法不一样,由双方自己掌握,但是明文密码按规矩是不可以直接传输的。不要传输明文密码。 实际上你传过来到后台的数据。在我后台看来就是密码,我后台会对这段字符再次进行加密,数据库中会储存我加密后的密码值。校验的时候,从数据库取出加密后的密码,并获取前端传输过来的字符串,用相应的算法对两者进行比对就可以了。

最赞回答 / 水不要鱼_
你有没有发现MD5 加密之后的长度是一样的,不管原本的信息有多长?这是因为 MD5 是摘要算法,有点类似于从你要加密的信息中选取一部分信息出来加密,所以即使你得到了 MD5 加密之后的结果,也很难从一部分信息中反推出原本的完整信息。另外,MD5 也是存在被破解的情况,那就是最传统的破解方法,从一堆数据中一个个去试。所以, MD5 可以设置一个盐值,类似于干扰信息,可以降低被破解的概率。

最新回答 / 慕粉2333001784
你应该是对一个对象用了toString方法,所以才会这样,你再看看你需要输出的到底是什么?用GET方法后再toString或许就可以了

最新回答 / 蝶梦疏妄
可能是转义的时候出的问题因为我 public static void bcHmacMD5() { HMac hmac = new HMac(new MD5Digest()); hmac.init(new KeyParameter(org.bouncycastle.util.encoders.Hex.decode(""))); hmac.update(src.getBytes(), 0, src.getBytes().length); // ...

最新回答 / vita_强
老师只是提供了你一种学习的思路,但是实际运用过程中,很多知识还是要自己去总结的

最赞回答 / botao555
没有导入commons-codec jar包百度下:commons-codec-1.10.jar 下载下来导入就行了。

最新回答 / taoy
一个byte是八比特,new String时按照byte的值到字符表中找对应的字符来生成字符串。Hex.byteArrayToString是把一个byte变成两个十六进制的英文与数字组合,内容当然就不会一样。

最新回答 / duhua
成功通过

最赞回答 / 宋兆恒
无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出,SHA-1的变体可以产生192比特位和256比特位的消息摘要。一般认为,摘要的最终输出越长,该摘要算法就越安全。

最新回答 / 无语的人
不一定是10个,key的元素个数是偶数就行。以下是CC的Hex.decodeHex()方法的文档注释:<...图片...>BC报这个异常的原因应该类似。

最赞回答 / 明日之春
这个是因为DigestUtils.sha1Hex(src)中是默认使用UTF-8的编码格式来获取字节数组的,而DigestUtils.sha1Hex(src.getBytes())是用系统默认的编码格式来获取字节数组的,不一定是UTF-8。由于字节数组不同,所以结果也不同所以DigestUtils.sha1Hex(src)应该等于DigestUtils.sha1Hex(src.getBytes("UTF-8"))
首页上一页12下一页尾页
课程须知
1、需具备Java面向对象的基础知识 2、需要学习加解密的基础,具体内容请见《Java实现Base64加密》课程的第一章
老师告诉你能学到什么?
1、能够使用Java实现MD、SHA和MAC三种消息摘要算法进行加密 2、能够了解消息摘要算法的应用场景

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消