package net.loyin.util.safe; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.log4j.Logger; /** MD5加密 */ public class KeyedDigestMD5 { private static final Logger log = Logger.getLogger(KeyedDigestMD5.class); public static byte[] getKeyedDigest(byte[] buffer, byte[] key) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(buffer); return md5.digest(key); } catch (NoSuchAlgorithmException e) { log.error(e); } return null; } /** * 加密 * @param strSrc需要加密的字符串 * @param key 密钥 * @return */ public static String getKeyedDigest(String strSrc, String key) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(strSrc.getBytes("UTF8")); StringBuffer result = new StringBuffer(); byte[] temp; temp = md5.digest(key.getBytes("UTF8")); for (int i = 0; i < temp.length; i++) { result.append(Integer.toHexString( (0x000000ff & temp[i]) | 0xffffff00).substring(6)); } return result.toString(); } catch (NoSuchAlgorithmException e) { log.error(e); } catch (Exception e) { log.error(e); } return null; } public static void main(String[] args) { String mi; String s = "loyin"; // 第二个参数请填空字符串 mi = KeyedDigestMD5.getKeyedDigest(s, "loyin"); System.out.println("mi:bbf035214a2c4d7c598c618d239831d2\n" + mi); } }