package com.luckymonkey.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import android.util.Log; /** * MD5加密算法 * * @author xavier * @version $Id: Md5Utils.java 2014�?�?�?下午4:01:08 $ */ public class Md5Utils { private static final String TAG = Md5Utils.class.getSimpleName(); private static final String KEY_MD5 = "MD5"; /** * MD5加密 * * @param data * @return * @throws NoSuchAlgorithmException */ public static String encryptMD5(byte[] data) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance(KEY_MD5); } catch (NoSuchAlgorithmException e) { Log.d(TAG, "md5 加密异常", e); } md5.update(data); byte[] returnbyteArray = md5.digest(); return byte2hex(returnbyteArray); } /** * MD5加密 * * @param str * @return * @throws NoSuchAlgorithmException */ public static String encryptMD5(String str) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance(KEY_MD5); } catch (NoSuchAlgorithmException e) { Log.d(TAG, "md5 加密异常", e); } md5.update(str.getBytes()); return byte2hex(md5.digest()); } /** * MD5加盐加密 * * @param str * @param salt * @return * @throws NoSuchAlgorithmException */ public static String encryptMD5(String str, String salt) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance(KEY_MD5); } catch (NoSuchAlgorithmException e) { Log.d(TAG, "md5 加密异常", e); } md5.update((str + salt).getBytes()); return byte2hex(md5.digest()); } public static String byte2hex(byte[] bytes) { StringBuilder sign = new StringBuilder(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(bytes[i] & 0xFF); if (hex.length() == 1) { sign.append("0"); } sign.append(hex.toUpperCase()); } return sign.toString(); } public static byte[] hex2byte(String str) { if (str == null) { return null; } str = str.trim(); int len = str.length(); if (len <= 0 || len % 2 == 1) { return null; } byte[] b = new byte[len / 2]; try { for (int i = 0; i < str.length(); i += 2) { b[(i / 2)] = (byte) Integer.decode("0x" + str.substring(i, i + 2)).intValue(); } return b; } catch (Exception e) { } return null; } }