首先来看数据库里的一张员工信息表:
问题: 员工表中的密码是明文存储,安全性太低。
解决思路: 将明文密码加密后存储,提高安全性。
加密方式有很多,这里简单介绍 MD5加密方式 :
(详细解释请转:百度百科)
实现步骤:
-
修改数据库中明文密码,改为MD5加密后的密文。
-
修改Java代码:前端提交的密码(明文) 进行MD5加密后再跟 数据库中密码(密文) 对比。
springboot提供了一个 工具类DigestUtils,在这个工具类里有一个md5加密方法md5DigestAsHex( ),该方法的参数格式为byte数组。
password = DigestUtils.md5DigestAsHex(password.getBytes());
注意:这种加密方式是不可逆的:
明文(12346)可以加密得到 密文(e10adc3949ba59abbe56e057f20f883e)
密文(e10adc3949ba59abbe56e057f20f883e) 无法得到 明文(12346)
因此进行密码匹对的时候,只能将前端传过来的明文密码进行加密,再跟数据库的密文进行匹对。