* Live800Encode.java
package com.goldarmor.live800.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Live800Encode {
private final static String[] hexDigits = {
"0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "a", "b", "c", "d", "e", "f"
};
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
private static String byteToHexString(byte b) {
int n = b;
if (n < 0) {
n += 256;
}
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
/**
* @param origin String
* @return String
* @throws Exception
*/
public static String getMD5Encode(String origin) throws Exception {
if (!inited) {
throw new Exception("MD5 算法实例初始化错误!");
}
if (origin == null) {
return null;
}
byte[] temp = null;
synchronized (md) {
temp = md.digest(origin.getBytes());
}
return byteArrayToHexString(temp);
}
private static MessageDigest md = null;
private static boolean inited = false;
static {
try {
md = MessageDigest.getInstance("MD5");
inited = true;
}
catch (NoSuchAlgorithmException ex) {
inited = false;
}
}
public static void main(String[] args) {
try {
System.out.println(getMD5Encode("ff"));
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
Run as Java application:
633de4b0c14ca52ea2432a3c8a5c4c31
* 创建php文件测试
<?php
echo md5("ff").PHP_EOL;
$ php md5.php
633de4b0c14ca52ea2432a3c8a5c4c31
相关文章:C++实现md5