一個簡單的MD5加鹽

雖然都說MD5加密一下密碼比較好,但是如果密碼過於簡單,比如123456,經過MD5加密之後還是不安全,因爲別有用心的人可以使用彩虹表來撞庫得到密碼。因此爲了加大破解難度,需要給MD5算法加鹽。下面是一個簡單的加鹽算法。
當然,我不是說加了鹽就一勞永逸了,下面的代碼也不安全,這樣做只是爲了加大破解的難度。
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5加密工具類
 */
public class Md5EncryptionHelper {

    /**
     * 獲取MD5字符串
     */
    public static String getMD5(String content) {
        try {
            MessageDigest digest = MessageDigest.getInstance("MD5");
            digest.update(content.getBytes());
            return getHashString(digest);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

    private static final String SALT = "0fdfa5e5a88bebae640a5d88e7c84708";

    /**
     * 獲取加鹽的MD5字符串
     */
    public static String getMD5WithSalt(String content) {
        return getMD5(getMD5(content) + SALT);
    }

    private static String getHashString(MessageDigest digest) {
        StringBuilder builder = new StringBuilder();
        for (byte b : digest.digest()) {
            builder.append(Integer.toHexString((b >> 4) & 0xf));
            builder.append(Integer.toHexString(b & 0xf));
        }
        return builder.toString();
    }
}

 

參考:

https://www.jianshu.com/p/df70661da2d5

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章