使用commons对密码进行二次md5摘要进行安全保护

一般系统使用md5摘要,对用户密码进行保存,随着类举算法和匹配算法的层出,单次或者纯客户端的md5摘要已经无法起到安全的效果。近期对登录服务进行了简单升级,除了做了Session分布式以外,单独对用户的密码信息进行了客户端+服务端的双层md5。分享给大家

导入相关包

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>3.6</version>
</dependency>
      <dependency>
          <groupId>org.jetbrains</groupId>
          <artifactId>annotations</artifactId>
          <version>RELEASE</version>
      </dependency>

Java 代码

public class MD5Utils {

    public static String md5(String formStr) {
        return DigestUtils.md5Hex(formStr);
    }

    private static final String salt = "1a2b3c4d5e";

    public static String inputPass2FormPass(String inputPass){
        String str = salt.charAt(0) + salt.charAt(2) + inputPass + salt.charAt(6) + salt.charAt(3);
        return md5(str);
    }

    public static String formPass2DBPass(String formPass, String salt){
        String str = salt.charAt(0) + salt.charAt(2) + formPass + salt.charAt(6) + salt.charAt(3);
        return inputPass2FormPass(str);
    }

}

salt 可以自己制定,fromPass2DBPass中的salt,应该在服务于交互中产生。

猜你喜欢

转载自blog.csdn.net/zhao_jj_ok/article/details/87644172