場景:平常我們用戶注冊的密碼保存到數據庫都不會是明文存儲的。都是經過加密之后的。因為保證用戶的安全性。我們通常是用md5算法來加密的。
這個只能算是一個工具類。沒必要了解里面是怎么實現的。拿來用就可以。
MD5Util.java
package com.mmall.util; import lombok.extern.slf4j.Slf4j; import java.security.MessageDigest; @Slf4j public class MD5Util { public final static String encrypt(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; try { byte[] btInput = s.getBytes(); // 獲得MD5摘要算法的 MessageDigest 對象 MessageDigest mdInst = MessageDigest.getInstance("MD5"); // 使用指定的字節更新摘要 mdInst.update(btInput); // 獲得密文 byte[] md = mdInst.digest(); // 把密文轉換成十六進制的字符串形式 int j = md.length; char str[] = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } return new String(str); } catch (Exception e) { log.error("generate md5 error, {}", s, e); return null; } } public static void main(String[] arg){ System.out.println(MD5Util.encrypt("123456")); } }
