Java實現MD5加密
為了保護有些數據,就需要采取一些手段來進行數據的加密,防止被別人破解。
MD5簡介
md5的全稱是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一種被廣泛使用的密碼散列函數,可以產生一個128位(16字節,1字節8位)的散列值(常見的是用32位的16進制表示,比如:0caa3b23b8da53f9e4e041d95dc8fa2c),用於確保信息傳輸的完整一致。
功能實現
1、MD5的工具類
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* 南宮乘風
*/
public class MD5Utils {
/**
* MD5加密類
* @param str 要加密的字符串
* @return 加密后的字符串
*/
public static String code(String str){
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[]byteDigest = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < byteDigest.length; offset++) {
i = byteDigest[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
//32位加密
return buf.toString();
// 16位的加密
//return buf.toString().substring(8, 24);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
/**
* 測試方法
* @param args
*/
public static void main(String[] args) {
System.out.println(code("111111"));
}
}
最下面這個是測試方法

2、項目中調用
我在項目的接口中調用MD5的方法
public User checkUser(String username, String password) {
User user = userRepository.findByUsernameAndPassword(username, MD5Utils.code(password));
return user;
}
解析:這就是用戶登錄把密碼傳遞過來,進行MD5加密后,在和數據庫中的密碼進行對比(數據庫中的密碼是MD5格式存儲的)

3、思路拓展(防止重要信息被盜用)
- 賬號注冊
- 密碼登錄
- 信息保護
- 資料加密
等等,許多的功能都可以用到這樣的方法來進行加密。
