springboot使用MD5保存信息到mysql

springboot使用MD5保存信息到mysql

不知道你们是使用什么方式,我一般都是通过md5隐藏密码信息,下面我说说我的使用步骤

1.MD5的作用(在网上搜的,侵权别说我)
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
5、强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。

2.环境
IDE:IDEA
语言:JAVA
框架:springboot,mybatis
数据库:mysql
模板引擎:thymeleaf

3.效果
首先是账号的注册,账号和密码都是aaaaaa。
在这里插入图片描述
如下图可以看到密码被加密了。
在这里插入图片描述
4.pom.xml
下面是MD5要引入的jar包,其它的像mysql,mybatis就没有写上去,自己去找把

<!--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>

5.MD5工具类

如下的md5类所示,有四个方法,分别是
md5,inputPassToFormPass,formPassToDBPass,inputPassToDbPass
注释上面都有,解释一下加盐.
加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联。无论何时只要口令改变,随机数就改变。随机数以未加密的方式存放在口令文件中,这样每个人都可以读。不再只保存加密过的口令,而是先将口令和随机数连接起来然后一同加密,加密后的结果放在口令文件中。(这句也是搜的)
下面提供的4个方法都可以调用,自己想用哪个就用哪个。

public class md5 {
    //第一次加密(没加盐)
    public static String md5(String src) {
        return DigestUtils.md5Hex(src);
    }
    //加盐
    private static final String salt = "1a2b3c4d";

    //加盐的md5
    public static String inputPassToFormPass(String inputPass) {
        String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass +salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }

    //加盐的md5(盐是自己定义的)
    public static String formPassToDBPass(String formPass, String salt) {
        String str = ""+salt.charAt(0)+salt.charAt(2) + formPass +salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }

    //第一次使用md5加密(无盐)然后再次使用md5加密(自定义的盐)
    public static String inputPassToDbPass(String inputPass, String saltDB) {
        String formPass = inputPassToFormPass(inputPass);
        String dbPass = formPassToDBPass(formPass, saltDB);
        return dbPass;
    }
}
发布了33 篇原创文章 · 获赞 1 · 访问量 2065

猜你喜欢

转载自blog.csdn.net/m0_45025658/article/details/104072852
今日推荐