Java常用類庫API之MD5簡單使用


常用類庫--MD5簡單使用

MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致。

在JavaEE中用於密碼校驗,JavaWeb編程中使用得多。

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

import org.junit.Test;

public class MD5 {

	private static String savedPwd = "pmq7VoTEWWLYh1ZPCDRujQ==";// 存儲的密文

	public static void main(String[] args) {
		// 將明文密碼admin123456加密
		System.out.println(md5Encryption("admin123456"));
	
		// 測試登錄
		System.out.println(loginByRightPwd("admin123456"));
	}

	public static boolean loginByRightPwd(String pwd) {
		if (savedPwd.equals(md5Encryption(pwd))) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 計算md5的工具方法
	 * @param password
	 * @return 加密后的密碼
	 */
	@Test
	private static String md5Encryption(String password) {
		try {
			MessageDigest md = MessageDigest.getInstance("md5");

			// 通過md5計算摘要,返回一個字節數組
			byte[] bytes = md.digest(password.getBytes("UTF-8"));

			// 再將字節數編碼為用a-z A-Z 0-9 / *一共64個字符表示的要存儲到數據庫的字符串,所以又叫BASE64編碼算法
			String str = Base64.getEncoder().encodeToString(bytes);
			return str;
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return null;// 發生異常返回空
	}
}

輸出結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM