经过我们第一步的测试,我们可以进行最简单的网页-后台的交互,第二步我们就来进行密码的MD5的加密了。

首先我们为什么要进行MD5加密呢?是这样的,当前端返回给后端密码时,如果不进行加密,很容易被黑客入侵后台给盗取,这是前台到后台的面传输;还有后台到数据库的传输,同样,我们要防黑客攻击数据库,盗取数据库里存储的密码。我们也应在这一阶段设置加密。

所以加密分两段:1前台到数据库的传输;2后台到数据库的传输。

--------------------------------------------------------------------

好了一下开始我们的加密步骤:

第一步:我们首先在pom文件里添加加密依赖,如图:

这是依赖代码,拿去直接用:

<!--MD5依赖加密 -->
<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId>
</dependency>
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.6</version>
</dependency>

-------------------------------------------------------------------------

第二步我们要写加密工具类了,这是加密代码:

这是工具类的路径,我们提前写好工具类,之后我们要用的话直接调用,以下是代码直接用:

package com.xxxxx.seckilldemo.utils;import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Component;@Component
public class MD5Util {public static String md5(String src) {return DigestUtils.md2Hex(src);}//定义一个“盐”,使其成为加密的一个依据。private static final String salt ="1a2b3c4d";//第一次加密:用户端输入密码传到后端的密码进行加密public static String inputPassToFromPass(String inputPass){String str =salt.charAt(0)+salt.charAt(2)+inputPass+salt.charAt(5)+salt.charAt(4);return md5(str);}//第二次加密:后端密码传到数据库的密码进行加密public static String fromPass(String fromPass,String salt){String str =salt.charAt(0)+salt.charAt(2)+fromPass+salt.charAt(5)+salt.charAt(4);return md5(str);}//将两个加密整合,我们只需调用这一个方法就能获得两次加密的密码public static String inputPassToDBPass(String inputPass,String salt){String fromPass = inputPassToFromPass(inputPass);String DBPass = fromPass(fromPass,salt);return DBPass;}
}

其实原理也很简单,就是将前端的密码获取到,对其进行加密函数操作,然后返回加密密码。然后在讲这个密码给另一个相似的加密函数操作再进行加密,最后返回的数据库密码。如此操作数据库里的密码就“火星文”了。

这是工具类的代码,等我们要用的时候(书写登录业务的模块的时候)可以直接用。下面会更新。

SpringBoot开发文档二(MD5二次加密)相关推荐

  1. luajit开发文档中文版(二)LuaJIT扩展

    2022年6月10日15:33:04 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文 ...

  2. qgc开发文档_QGC地面站二次开发教程二

    上一次带大家进行了ubuntu下的Q Ground Control安装与编译,这次教大家对地面站的页面进行修改,对按钮或者页面进行删减,如何添加下次再说吧,我还没研究明白. 一开始打开qgroundc ...

  3. luajit开发文档wiki中文版(二) LuaJIT 扩展

    2022年6月9日09:39:53 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文档 ...

  4. luajit开发文档wiki中文版(四) LuaJIT 内部结构

    2022年6月10日15:15:22 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文 ...

  5. luajit开发文档中文版(一)下载和安装

    2022年6月10日15:32:51 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文 ...

  6. luajit开发文档wiki中文版(六) LuaJIT 开发

    2022年6月10日15:20:41 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文 ...

  7. luajit开发文档wiki中文版(五) 系统集成

    2022年6月10日15:15:35 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文 ...

  8. AutoCAD 开发文档,AutoLISP 教程,.Net AutoCAD开发教程,VB AutoCAD开发教程,ObjectARX 开发指南,VBA AutoCAD开发教程,ActiveX 开发指南

    AutoCAD 开发文档, CAD开发者社区 - AutoCAD二次开发文档,CAD二次开发,CAD插件开发,中文CAD文档 - 中文CAD开发文档,CAD二次开发问题交流,优秀插件分享 AutoLI ...

  9. 最新云豹二开直/播短视频完整系统源码+带开发文档/教程

    正文: 最新云豹二开直/播短视频完整系统源码+带开发文档/教程,好友给我分享的,属于云豹二开,功能非常的强大,且有非常完整的开发文档和教程. 但是说实话这类程序不属于好部署的那一种,比较吃一定的技术, ...

最新文章

  1. C++负数、小数如何保存
  2. 原生ajax的post操作
  3. Java的几种常见接口用法
  4. IndexedDB 索引数据库
  5. php 配置域名与端口号,lnmp 配置不同端口号的域名
  6. [architecture]-spin_unlock中是怎样让cpu退出standby模式的?
  7. c++使用Vigenere加解密文本的算法(附完整源码)
  8. 匿名内部类与Lambda表达式习题
  9. 计算机辅助抗体设计,计算机辅助设计提高单克隆抗体亲和力的研究
  10. Dubbo Metrics 发布新版本 2.0.1 | Dubbo 的度量统计基础设施
  11. 【算法导论第13章】红黑树
  12. 如何在SQL Server数据库中删除角色
  13. python pandas库-dataframe.pivot()方法的理解
  14. idea svn分支与分支合并_Idea svn 合并分支方式(坑)
  15. 杨东援:交通管控,从智能走向智慧
  16. Linux:设置文件夹权限之777的含义
  17. Vue项目引用高德地图实现车辆轨迹回放
  18. 大学生网页设计模板 静态HTML个人主页网页作业成品 DIV CSS个人介绍主题静态网页
  19. Linux 硬盘管理工具
  20. 组件化、模块化、Composing Builds

热门文章

  1. win7系统mscomctl.ocx不能注册
  2. 【R实验.8】方差分析
  3. VS无法下载,提示无法连接到网络
  4. 设置谷歌浏览器安全级别
  5. redis_主从复制搭建
  6. 全倒装COB小间距LED全彩显示屏必将推动下一代显示技术的发展。
  7. java项目:基于springboot+vue的实验室预约管理系统 nodejs
  8. 网络安全!顶级大佬进行鱼叉式钓鱼攻击?手把手教学
  9. 网络原理:TCP/UDP
  10. net_write_timeout参数