md5加密16位 java_MD5、SHA1加密java 16位32位

importjava.math.BigInteger;importjava.security.MessageDigest;public classAppMD5Util {/*** 对字符串md5加密(小写+字母)

*

*@paramstr 传入要加密的字符串

*@returnMD5加密后的字符串*/

public staticString littleMD5a(String str) {try{//生成一个MD5加密计算摘要

MessageDigest md = MessageDigest.getInstance("MD5");//计算md5函数

md.update(str.getBytes());//digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符//BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值

return new BigInteger(1, md.digest()).toString(16);

}catch(Exception e) {

e.printStackTrace();return null;

}

}//16位是将32位中的16截取出来

public staticString little16MD5a(String str) {return littleMD5a(str).substring(8, 24);

}/*** 对字符串md5加密(大写+数字)

*

*@paramstr 传入要加密的字符串

*@returnMD5加密后的字符串*/

public staticString BigMD55(String string) {char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};try{byte[] btInput =string.getBytes();//获得MD5摘要算法的 MessageDigest 对象

MessageDigest mdInst = MessageDigest.getInstance("MD5");//使用指定的字节更新摘要

mdInst.update(btInput);//获得密文

byte[] md =mdInst.digest();//把密文转换成十六进制的字符串形式

int j =md.length;char str[] = new char[j * 2];int k = 0;for (int i = 0; i < j; i++) {byte byte0 =md[i];

str[k++] = hexDigits[byte0 >>> 4 & 0xf];

str[k++] = hexDigits[byte0 & 0xf];

}return newString(str);

}catch(Exception e) {

e.printStackTrace();return null;

}

}//16位是将32位中的16截取出来

public staticString Big16MD55(String str) {return BigMD55(str).substring(8, 24);

}//获取SHA1加密值

public staticString getSHA1(String str){if(str==null||str.length()==0){return null;

}char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};try{

MessageDigest mdTemp= MessageDigest.getInstance("SHA1");

mdTemp.update(str.getBytes("UTF-8"));byte[] md =mdTemp.digest();int j =md.length;char buf[] = new char[j*2];int k = 0;for (int i = 0; i < j; i++) {byte byte0 =md[i];

buf[k++] = hexDigits[byte0 >>> 4 & 0xf];

buf[k++] = hexDigits[byte0 & 0xf];

}return newString(buf);

}catch(Exception e) {return null;

}

}public static voidmain(String[] args) {

String bigmd5= BigMD55("miniprograme");

System.err.println("32大写加数字 "+bigmd5);long Time13 =System.currentTimeMillis();

System.out.println(Time13);

String postbigmd5time= "POST"+bigmd5+Time13;

System.err.println("post32大写加数字 时间戳 "+postbigmd5time);

System.out.println("最终的sign值 "+getSHA1(postbigmd5time));

System.err.println("最终的sign值 "+getSHA1(postbigmd5time));

System.out.println(Time13);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值