import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * MD5加密 * * @author Hongten * */ public class MD5 { public static void main(String[] args) { System.out.println(MD5.getMD5("123456")); } /** * 用md5编码后的码值 * * @param sInput * 明码 * @return md5加密后的密码 */ public static String getMD5(String sInput) { String algorithm = ""; if (sInput == null) { return "null"; } try { algorithm = System.getProperty("MD5.algorithm", "MD5"); } catch (SecurityException se) { } MessageDigest md = null; try { md = MessageDigest.getInstance(algorithm); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } byte buffer[] = sInput.getBytes(); for (int count = 0; count < sInput.length(); count++) { md.update(buffer, 0, count); } byte bDigest[] = md.digest(); BigInteger bi = new BigInteger(bDigest); return (bi.toString(16)); } }
by: 洛云 发表于:2012-12-18 09:10:33 顶(0) | 踩(0) 回复
/** * 获取一个字符串加密后的16进制值 * * @param algorithm 摘要算法 * @param message 进行加密的byte数组 * * @return String 计算后的结果 */ public static String getDigest(String algorithm, byte[] message) { MessageDigest md = null; try { md = MessageDigest.getInstance(algorithm); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } byte[] result = md.digest(message); StringBuffer valueHex = new StringBuffer(); for (int i = 0, tmp; i < result.length; i++) { tmp = result[i] & 0xff; if (tmp < 16) { valueHex.append(0); } valueHex.append(Integer.toHexString(tmp)); } return valueHex.toString(); } /** * 获取一个字符串加密后的16进制值 * * @param algorithm 摘要算法名称 * @param message 进行加密的byte数组 * * @return String 计算后的结果 */ public static String getDigest(String algorithm, char[] message) { return getDigest(algorithm, new String(message)); }
初级程序员
by: 洛云 发表于:2012-12-18 08:59:14 顶(0) | 踩(0) 回复
这段代码看起来很有问题。
网友回复
回复神马 : 什么问题?
顶(0) 踩(0) 2012-12-19 22:09:48
回复评论