1. 概述
为了保证数据的隐蔽性以及处于安全方面的考虑,我们往往会将一些存入数据库的有关密码的数据使用加密的方式保存起来,其中MD5就是一种常用的加密方式
2. 加密方式
我知道的有两种方法都可以达到加密的效果
1. 在数据插入前加密
2. 在插入数据时加密
2.1 在数据传入前加密
- 步骤一:需要使用外部工具,先导入工具包
<!-- 数据加密 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
- 步骤二:代码实现
@Test
public void testMD5(){
User user = new User();
//设置用户名
user.setName("张三");
//设置密码
String pass = "123456"; //用户设置的密码是123456
String md5pw = DigestUtils.md5Hex(pass ); //将pass使用md5加密
//打印下密码看看
System.out.println(md5pw); //输出:e10adc3949ba59abbe56e057f20f883e,这就是经过md5加密后的密码
//将其保存在user中
user.setPass(md5pw);
}
2.2 在插入时加密
- 步骤一:相对来说就简单很多了,插入数据时就跟平时一样,没什么变化,也不需要导包
@Test
public void testMD5(){
User user = new User();
//设置用户名
user.setName("张三");
//设置密码
String pass = "123456";
user.setPass(md5pw);
//调用service保存user
userService.insertUser(user);
}
- 步骤二:在mapper.xml文件中加密
- 主要就是
MD5(#{pass ,jdbcType=VARCHAR}),
这句完成加密
- 主要就是
<insert id="insertUser" parameterType="com.voion.demo.domain.User" >
insert into user_t
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="name != null" >
name,
</if>
<if test="pass != null" >
password ,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="pass != null" >
MD5(#{pass ,jdbcType=VARCHAR}),
</if>
</trim>
</insert>