首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 實作 MD5 加密完整範例

     編輯:Java 相關知識

Java MD5 加密工具類實作

MD5(Message Digest Algorithm 5)是一種廣泛使用的雜湊函數,常用於密碼儲存、檔案完整性驗證等場合。以下提供一個完整、可直接使用的 Java MD5 加密工具類。

核心程式碼

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {

    /**
     * 取得字串的 MD5 雜湊值(十六進位大寫)
     * @param input 待加密字串
     * @return 32 位十六進位字串,失敗回傳 null
     */
    public static String encode(String input) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] inputBytes = input.getBytes();
            md.update(inputBytes);
            byte[] digestBytes = md.digest();
            return bytesToHex(digestBytes);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 將位元組陣列轉為十六進位字串
     */
    private static String bytesToHex(byte[] bytes) {
        char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        char[] result = new char[bytes.length * 2];
        int index = 0;
        for (byte b : bytes) {
            result[index++] = hexDigits[b >>> 4 & 0xF];
            result[index++] = hexDigits[b & 0xF];
        }
        return new String(result);
    }
}

使用範例

public class Main {
    public static void main(String[] args) {
        String password = "mySecret123";
        String md5 = MD5Util.encode(password);
        System.out.println("原文:" + password);
        System.out.println("MD5:" + md5);
        // 輸出範例:MD5:A1B2C3D4E5F6...
    }
}

補充說明

  • 此實作採用位元運算(>>> 4、& 0xF)轉換十六進位,效能優於字串格式化。
  • 回傳值為 32 字元大寫十六進位字串,符合常見儲存格式。
  • 安全提醒:MD5 已知存在碰撞弱點,不建議用於高安全性需求(如儲存使用者密碼),請改用 BCrypt、PBKDF2 或 Argon2 等慢速雜湊演算法。

線上工具參考

若需快速驗證,可使用線上 MD5 加密工具:MD5 在線加密工具

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved