一 加密算法
- 应用于数据传输
- 通过算法,可以得到加密前的数据
二 消息摘要算法
- 应用于数据校验,比如文件完整性验证,存储密码
- 根据算法获得的结果长度是固定的,不同的算法有不同的数据长度
- 有不同消息获得同样运算结果,但概率极低
- 相同的数据通过同一个算法获得的结果一定相同
所以我们在说数据库存储用户密码时,要使用消息摘要算法而不是加密算法, 因为加密算法是可逆的,而消息摘要算法是不可逆的。这样,即使在数据库泄漏时,也不会暴露密码。
我们存储用户通过算法后得到的数据,当用户登录时,通过此算法对用户输入的密码进行运算,如果密码正确,则运算的结果也一定是与数据库中存储的数据符合的。
三 在java中使用消息摘要算法
方法一:spring自带的摘要算法工具DigestUtils
String password = "heyuhong"; //消息摘要算法 String md5Message = DigestUtils.md5DigestAsHex(password.getBytes());
方法二:依赖包:Commons-codec
此工具附带了多种加密算法和消息摘要算法,对比上面的spring自带的算法来说,会比较好用。
<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency>
使用:
String passowrd = "xxx";
String md5Password=DigestUtils.md5Hex(password);//md5消息摘要算法
标签:String,摘要,密码,算法,消息,97,加密算法 来源: https://www.cnblogs.com/Scorpicat/p/12537481.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。