在信息量爆棚的大数据时代,越来越多的企业开发了属于自己的网站、app。使用这些软件都需要用户登录后才能使用,那么用户的信息在后台如何被保护就成为了一大问题。
本文主要讲解如何在用户注册时使用md5加密来保护信息。
主角登场:在spring核心包的MD5密码工具类---DigestUtils
该类下的方法:
这里我们主要使用该类下 返回值为 String 的 md5DigestAsHex (byte[] bytes) 方法。
测试及效果如下:
我们将生成的字符串复制到 md5解密网站 查看是否一致:
附上md5解密网站链接:md5解密网站
但是细心的朋友在测试时会发现,固定的密码每次通过这种方式加密后所生成的字符串都是一致的:(如图所示)
那么就会造成很大的安全隐患,失去了加密的意义。此时就需要我们通过加 “盐” 的方式来对密码进行再处理升级 (md5有点咸~)
复制进 md5加密网站 后:查询结果如下
附上测试代码:
// 定义一个静态常量 盐 salt
private static final String salt = "edg qwerdf win";
public static void main(String[] args) {
// 简单的测试,定义密码为123
String pwd = "123";
// 将用户键入的密码与盐进行字符串拼接,
// 拼接的方式有多种,盐的定义也有多种,自定义即可
String finalPwd = pwd + salt;
// 调用该类下返回值为String的方法,并将finalPwd转换为byte[]类型
String s = DigestUtils.md5DigestAsHex(finalPwd.getBytes());
// 打印生成的字符串并查看效果
System.out.println(s);
System.out.println(new Date());
}
这样一来,我们便完成了真正意义上的对后台数据的加密处理。将加盐后的字符串存入数据库即可实现对用户密码的保护。当然,盐需要管理员记录以便于企业内部使用,后续会出对盐加密后数据的处理方式以供用户登录。
md5加盐加密后实现登录 :
使用 md5加盐加密后 的数据 实现用户登录【一看就懂】
如有错误,欢迎指正
Thanks