1. 程式人生 > >java中使用MD5加密的算法

java中使用MD5加密的算法

static main for 獲得 負數 turn output null ssa

MD5,全名Message Digest Algorithm 5,中文名為消息摘要算法第五版,為計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護。以下是JAVA語言中使用MD5加密的工具類。

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

public class MD5Util {
    /**
     * 對字符串進行MD5摘要加密,返回結果與MySQL的MD5函數一致
     * 
     * @param input
     * @return
返回值中的字母為小寫 */ public static String md5(String input) { if (null == input) { input = ""; } String result = ""; try { // MessageDigest類用於為應用程序提供信息摘要算法的功能,如MD5或SHA算法 MessageDigest md = MessageDigest.getInstance("MD5");
// 獲取輸入 md.update(input.getBytes()); // 獲得產出(有符號的哈希值字節數組,包含16個元素) byte output[] = md.digest(); // 32位的加密字符串 StringBuilder builder = new StringBuilder(32); // 下面進行十六進制的轉換 for (int offset = 0; offset < output.length; offset++) {
// 轉變成對應的ASSIC值 int value = output[offset]; // 將負數轉為正數(最終返回結果是無符號的) if (value < 0) { value += 256; } // 小於16,轉為十六進制後只有一個字節,左邊追加0來補足2個字節 if (value < 16) { builder.append("0"); } // 將16位byte[]轉換為32位無符號String builder.append(Integer.toHexString(value)); } result = builder.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return result; } // 測試 public static void main(String[] args) { String m1 = md5("123"); String m2 = md5("124"); String m3 = md5(""); System.out.println("m1=" + m1); System.out.println("m2=" + m2); System.out.println("m3=" + m3); } }

java中使用MD5加密的算法