SpringBoot开发文档二(MD5二次加密)

        经过我们第一步的测试,我们可以进行最简单的网页-后台的交互,第二步我们就来进行密码的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;
    }
}

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值