Java密码加盐功能实现

写入数据库的密码,如果不加密,就会被人偷窥进而引发账户安全问题。java常用的加密操作是采用MD5进行加密。它是采用哈希算法来进行加密,具有不可逆性。但是如果你百度搜索“MD5破解”你会发现还真的有破解的网站,所以如果你采用简单的密码,比如:123456,即使你加密了,也会轻而易举进行破解。所以还要有所谓“密码加盐”的功能。

例如:我设置的密码是“123456”,如果不加盐,即是加密了,也能破解掉。加密如下:

然后把加密后的字符串放进破解网站机进行解密:

看到了吗?你的密码被破解出来了!!!

下面进行加盐操作:

package com.wei.mall.util;

import com.wei.mall.common.Constant;
import org.apache.tomcat.util.codec.binary.Base64;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5工具
 */
public class MD5Utils {
    public static String getMD5Str(String strValue) throws NoSuchAlgorithmException {
        MessageDigest md5 = MessageDigest.getInstance("MD5");
                                                        //加盐操作增加常量值
       return  Base64.encodeBase64String(md5.digest((strValue+ Constant.SALT).getBytes())) ;
    }

//    public static void main(String[] args) throws NoSuchAlgorithmException {
//        String md5=null;
//        md5 = getMD5Str("123456");
//        System.out.println(md5);
//    }
}

常量值:进行加盐操作,SALT的字符串是随意打的,把密码变得复杂:

package com.wei.mall.common;

/**
 * 常量值
 */
public class Constant {
    public static final String SALT="fskdhfiuhjfshfjhsad4354%¥%¥%3";
}

如下验证:

密码就变得相对安全了!!!!!

经验分享 程序员 微信小程序 职场和发展