博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MD5加密
阅读量:6537 次
发布时间:2019-06-24

本文共 1907 字,大约阅读时间需要 6 分钟。

hot3.png

import java.security.MessageDigest;import org.apache.commons.codec.binary.Base64;public class MD5sUtils {			/**	 * MD5 加密 返回MD5码32位字符串	 * @param str	 * @return	 * @throws Exception	 */	public static String encryptByMD5for32(String str) throws Exception{		return  bytesToHex(encryptMD5(str));	}	/**	 * MD加密后,在用BASE64 加密返回字符串	 * @param str	 * @return	 * @throws Exception	 */	public static String encodeBase64ByMD5(String str) throws Exception{		return  Base64.encodeBase64String(encryptMD5(str));	}		/**	 * BASE64 加密的字符串解密出来,转成16进制,返回就是MD5的16进制字符串	 * @param key	 * @return	 * @throws Exception	 */	public static String decryptBASE64ByMD5(String key) throws Exception {  		   return bytesToHex(Base64.decodeBase64(key));  	} 			/**	 * MD5 加密 返回 16位字符串	 * @param str	 * @return	 * @throws Exception	 */	public static String encryptByMD5for16(String str) throws Exception{		return  bytesToHex(encryptMD5(str)).substring(8,24);	}	/**	 * MD5	 * @param str	 * @return	 * @throws Exception	 */	private static byte[] encryptMD5(String str) throws Exception {		MessageDigest md = MessageDigest.getInstance("MD5");			return md.digest(str.getBytes("UTF-8"));	}			/**	 * MD5 byte转换成16进制返回	 * @param b	 * @return	 */   private static String bytesToHex(byte[] b) {  		StringBuffer buf = new StringBuffer();		int i;	    for (int offset = 0; offset < b.length; offset++) {	     i = b[offset];	     if (i < 0) {	      i += 256;	     }	     if (i < 16) {	      buf.append("0");	     }	     // 将整型 十进制 i 转换为16位,用十六进制参数表示的无符号整数值的字符串表示形式。	     buf.append(Integer.toHexString(i));	    }	   return buf.toString();    }  }
@Testpublic void test() {  System.out.println(MD5sUtils.encryptByMD5for32("123456")+"------"+MD5sUtils.encryptByMD5for16("123456")); System.out.println(MD5sUtils.encodeBase64ByMD5("123456")+"----------"+MD5sUtils.decryptBASE64ByMD5("4QrcOUm6Wau+VuBX8g+IPg=="));}

转载于:https://my.oschina.net/wcsm520/blog/222717

你可能感兴趣的文章