packagecom.aarony.test;importjava.io.IOException;importjava.security.MessageDigest;importsun.misc.BASE64Decoder;importsun.misc.BASE64Encoder;public classDigestDemo {/***
* 此方法描述的是:base64 解码
*
*@author: Aarony
*@version: 2018年6月20日 下午9:16:57*/
public static byte[] base642byte(String base64) throwsIOException {
BASE64Decoder decoder= newBASE64Decoder();returndecoder.decodeBuffer(base64);
}/***
* 此方法描述的是: base 64编码
*
*@author: Aarony
*@version: 2018年6月20日 下午9:15:14*/
public static String byte2base64(byte[] bytes) {
BASE64Encoder base= newBASE64Encoder();returnbase.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;
}returnbytes;
}/***
* 此方法描述的是:byte 转换成 16位
*
*@author: Aarony
*@version: 2018年6月20日 下午9:17:16*/
public static String bytes2hex(byte[] bytes) {
StringBuilder sBuilder= newStringBuilder();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());
}returnsBuilder.toString();
}/***
* 此方法描述的是:sha
*
*@author: Aarony
*@version: 2018年6月20日 下午9:18:11*/
public static byte[] testSHA(String content) throwsException {
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) throwsException {
MessageDigest messageDigest= MessageDigest.getInstance("MD5");byte[] bytes = messageDigest.digest(content.getBytes("utf-8"));returnbytes;
}
}