Java如何通过MD5加盐技术对密码进行加密操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计840个文字,预计阅读时间需要4分钟。
目录前言Java常用加密手法场景加密手法应用场景MD5加密的风险什么是散列引入MD5工具类编写MD5散列工具类测试散列加密强度注册加密登录解密总结前言在开发过程中,有一些敏感信息需要加密处理,以确保数据安全。本文将介绍Java中常用的加密手法,并探讨MD5加密的应用场景和风险。
Java常用加密手法场景加密手法应用场景MD5加密的风险什么是散列引入MD5工具类编写MD5散列工具类测试散列加密强度注册加密登录解密总结
目录
- 前言
- Java常用加密手段
- 场景加密手段应用场景
- MD5加密的风险
- 什么是盐
- 引入MD5工具类
- 编写MD5加盐工具类
- 测试盐加密强度
- 注册加密
- 登录解密
- 总结
前言
在开发的时候,有一些敏感信息是不能直接通过明白直接保存到数据库的。最经典的就是密码了。如果直接把密码以明文的形式入库,不仅会泄露用户的隐私,对系统也是极其的不厉,这样做是非常危险的。
那么我们就需要对这些铭文进行加密。
Java常用加密手段
现在市场是加密的方式已经有很多了,像Base64加密算法(编码方式),MD5加密(消息摘要算法,验证信息完整性),对称加密算法,非对称加密算法,数字签名算法,数字证书,CA认证等等。。
场景加密手段应用场景
Base64应用场景:图片转码(应用于邮件,img标签,localhost:9090/upload/defaultUserImage.jpg"); if (this.save(user)) { return Result.ok(user); } return Result.fail("保存用户信息失败"); }
接口简单测试下把,可以看到是以加密的方式入库的:
登录解密
加密后入库了可不够,还要进行对比呢,随意登录也要处理下:
@GetMapping(value = "/login") public Result login(User user) { return userService.login(user); } public Result login(User user) { // 账号 String account = user.getAccount(); // 密码 String password = user.getPassword(); // 如果账号或者密码为空,返回错误信息 if (StringUtils.isEmpty(account) || StringUtils.isEmpty(password)) { return Result.fail("账号和密码都不能为空!"); } // 根据账号和密码查询对应的用户信息 User loginUser = this.query() .eq("account", account) .one(); if (!StringUtils.isEmpty(loginUser)) { // 获取该用户在数据库里面的加密过的密码 String saltPassword = loginUser.getPassword(); // 输入的密码和加密后的密码进行比较 boolean passwordFlag = SaltMD5Util.verifySaltPassword(password, saltPassword); // 如果根据账号查询和校验加密密码失败,则返回错误信息 if (StringUtils.isEmpty(loginUser) || !passwordFlag) { return Result.fail("登录失败,账号或者密码错误!"); } // 如果账号状态被禁用了 if (loginUser.getStatus().equals(ACCOUNT_DISABLE.getCode())) { return Result.fail("登录失败,该账号已被引用,请联系管理员!", loginUser); } // 存在的话返回查询到的用户信息 return Result.ok(loginUser); } return Result.fail("登录失败,账号或者密码错误!"); }
我们还以刚才注册的用户为例进行登录,可以看到虽然库里是加密后的密码,我们输入的是明文,但是一样可以匹配上的:
总结
加密真的很重要,重要的信息千万不能以明文保存!!!
到此这篇关于Java利用MD5加盐实现对密码进行加密处理的文章就介绍到这了,更多相关Java 密码加密内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!
本文共计840个文字,预计阅读时间需要4分钟。
目录前言Java常用加密手法场景加密手法应用场景MD5加密的风险什么是散列引入MD5工具类编写MD5散列工具类测试散列加密强度注册加密登录解密总结前言在开发过程中,有一些敏感信息需要加密处理,以确保数据安全。本文将介绍Java中常用的加密手法,并探讨MD5加密的应用场景和风险。
Java常用加密手法场景加密手法应用场景MD5加密的风险什么是散列引入MD5工具类编写MD5散列工具类测试散列加密强度注册加密登录解密总结
目录
- 前言
- Java常用加密手段
- 场景加密手段应用场景
- MD5加密的风险
- 什么是盐
- 引入MD5工具类
- 编写MD5加盐工具类
- 测试盐加密强度
- 注册加密
- 登录解密
- 总结
前言
在开发的时候,有一些敏感信息是不能直接通过明白直接保存到数据库的。最经典的就是密码了。如果直接把密码以明文的形式入库,不仅会泄露用户的隐私,对系统也是极其的不厉,这样做是非常危险的。
那么我们就需要对这些铭文进行加密。
Java常用加密手段
现在市场是加密的方式已经有很多了,像Base64加密算法(编码方式),MD5加密(消息摘要算法,验证信息完整性),对称加密算法,非对称加密算法,数字签名算法,数字证书,CA认证等等。。
场景加密手段应用场景
Base64应用场景:图片转码(应用于邮件,img标签,localhost:9090/upload/defaultUserImage.jpg"); if (this.save(user)) { return Result.ok(user); } return Result.fail("保存用户信息失败"); }
接口简单测试下把,可以看到是以加密的方式入库的:
登录解密
加密后入库了可不够,还要进行对比呢,随意登录也要处理下:
@GetMapping(value = "/login") public Result login(User user) { return userService.login(user); } public Result login(User user) { // 账号 String account = user.getAccount(); // 密码 String password = user.getPassword(); // 如果账号或者密码为空,返回错误信息 if (StringUtils.isEmpty(account) || StringUtils.isEmpty(password)) { return Result.fail("账号和密码都不能为空!"); } // 根据账号和密码查询对应的用户信息 User loginUser = this.query() .eq("account", account) .one(); if (!StringUtils.isEmpty(loginUser)) { // 获取该用户在数据库里面的加密过的密码 String saltPassword = loginUser.getPassword(); // 输入的密码和加密后的密码进行比较 boolean passwordFlag = SaltMD5Util.verifySaltPassword(password, saltPassword); // 如果根据账号查询和校验加密密码失败,则返回错误信息 if (StringUtils.isEmpty(loginUser) || !passwordFlag) { return Result.fail("登录失败,账号或者密码错误!"); } // 如果账号状态被禁用了 if (loginUser.getStatus().equals(ACCOUNT_DISABLE.getCode())) { return Result.fail("登录失败,该账号已被引用,请联系管理员!", loginUser); } // 存在的话返回查询到的用户信息 return Result.ok(loginUser); } return Result.fail("登录失败,账号或者密码错误!"); }
我们还以刚才注册的用户为例进行登录,可以看到虽然库里是加密后的密码,我们输入的是明文,但是一样可以匹配上的:
总结
加密真的很重要,重要的信息千万不能以明文保存!!!
到此这篇关于Java利用MD5加盐实现对密码进行加密处理的文章就介绍到这了,更多相关Java 密码加密内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

