作者:手机用户2602886747 | 来源:互联网 | 2023-09-09 10:23
写入数据库的密码,如果不加密,就会被人偷窥进而引发账户安全问题。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";
}
如下验证:
密码就变得相对安全了!!!!!