码迷,mamicode.com
首页 > 编程语言 > 详细

97 加密算法与消息摘要算法

时间:2020-03-21 13:03:11      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:传输   验证   group   div   htm   ima   info   根据   完整性   

一 加密算法

  • 应用于数据传输
  • 通过算法,可以得到加密前的数据

二 消息摘要算法

  • 应用于数据校验,比如文件完整性验证,存储密码
  • 根据算法获得的结果长度是固定的,不同的算法有不同的数据长度
  • 有不同消息获得同样运算结果,但概率极低
  • 相同的数据通过同一个算法获得的结果一定相同

 

所以我们在说数据库存储用户密码时,要使用消息摘要算法而不是加密算法, 因为加密算法是可逆的,而消息摘要算法是不可逆的。这样,即使在数据库泄漏时,也不会暴露密码。

我们存储用户通过算法后得到的数据,当用户登录时,通过此算法对用户输入的密码进行运算,如果密码正确,则运算的结果也一定是与数据库中存储的数据符合的。

三 在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消息摘要算法

  

97 加密算法与消息摘要算法

标签:传输   验证   group   div   htm   ima   info   根据   完整性   

原文地址:https://www.cnblogs.com/Scorpicat/p/12537481.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!