package com.aarony.test; import java.io.IOException; import java.security.MessageDigest; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class DigestDemo { /** * * 此方法描述的是:base64 解码 * * @author: Aarony * @version: 2018年6月20日 下午9:16:57 */ public static byte[] base642byte(String base64) throws IOException { BASE64Decoder decoder = new BASE64Decoder(); return decoder.decodeBuffer(base64); } /** * * 此方法描述的是: base 64编码 * * @author: Aarony * @version: 2018年6月20日 下午9:15:14 */ public static String byte2base64(byte[] bytes) { BASE64Encoder base = new BASE64Encoder(); return base.encode(bytes); } /** * * 此方法描述的是:16位数转换成byte * * @author: Aarony * @version: 2018年6月20日 下午9:17:43 */ public static byte[] hex2bytes(String hex) { byte[] bytes = new byte[hex.length() / 2]; for (int i = 0; i < hex.length(); i = i + 2) { String subStr = hex.substring(i, i + 2); boolean negative = false; int inte = Integer.parseInt(subStr, 16); if (inte > 127) { negative = true; } if (inte == 128) { inte = -128; } else if (negative) { inte = 0 - (inte & 0x7f); } byte b = (byte) inte; bytes[i / 2] = b; } return bytes; } /** * * 此方法描述的是:byte 转换成 16位 * * @author: Aarony * @version: 2018年6月20日 下午9:17:16 */ public static String bytes2hex(byte[] bytes) { StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < bytes.length; i++) { byte b = bytes[i]; boolean negative = false; if (b < 0) { negative = true; } int inte = Math.abs(b); if (negative) { inte = inte | 0x80; } String temp = Integer.toHexString(inte & 0xff); if (temp.length() == 1) { sBuilder.append("0"); } sBuilder.append(temp.toLowerCase()); } return sBuilder.toString(); } /** * * 此方法描述的是:sha * * @author: Aarony * @version: 2018年6月20日 下午9:18:11 */ public static byte[] testSHA(String content) throws Exception { MessageDigest messageDigest = MessageDigest.getInstance("SHA-1"); return messageDigest.digest(content.getBytes("utf-8")); } /** * * 此方法描述的是:md5 * * @author: Aarony * @version: 2018年6月20日 下午9:18:20 */ public static byte[] testMD5(String content) throws Exception { MessageDigest messageDigest = MessageDigest.getInstance("MD5"); byte[] bytes = messageDigest.digest(content.getBytes("utf-8")); return bytes; } }