java微信小程序支付退款_微信小程序-微信自动退款(Java后台)

packagecom.bodi.repository;importjava.security.MessageDigest;public classMD5Util {/*** 十六进制下数字到字符的映射数组*/

private final static String[] hexDigits = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};/*** @Title: encodeByMD5

* @Description: 对字符串进行MD5编码

*@authoryihj

*@param @paramoriginString

*@param @return参数

*@returnString 返回类型

*@throws

*/

public staticString MD5(String originString){if (originString!=null) {try{//创建具有指定算法名称的信息摘要

MessageDigest md5 = MessageDigest.getInstance("MD5");//使用指定的字节数组对摘要进行最后更新,然后完成摘要计算

byte[] results =md5.digest(originString.getBytes());//将得到的字节数组变成字符串返回

String result =byteArrayToHexString(results);returnresult;

}catch(Exception e) {

e.printStackTrace();

}

}return null;

}public staticString MD5Encode(String origin, String charsetname) {

String resultString= null;try{

resultString= newString(origin);

MessageDigest md= MessageDigest.getInstance("MD5");if (charsetname == null || "".equals(charsetname))

resultString=byteArrayToHexString(md.digest(resultString

.getBytes()));elseresultString=byteArrayToHexString(md.digest(resultString

.getBytes(charsetname)));

}catch(Exception exception) {

}returnresultString;

}/*** @Title: byteArrayToHexString

* @Description: 轮换字节数组为十六进制字符串

*@authoryihj

*@param @paramb

*@param @return参数

*@returnString 返回类型

*@throws

*/

private static String byteArrayToHexString(byte[] b){

StringBuffer resultSb= newStringBuffer();for(int i=0;i

resultSb.append(byteToHexString(b[i]));

}returnresultSb.toString();

}/*** @Title: byteToHexString

* @Description: 将一个字节转化成十六进制形式的字符串

*@authoryihj

*@param @paramb

*@param @return参数

*@returnString 返回类型

*@throws

*/

private static String byteToHexString(byteb){int n =b;if(n<0)

n=256+n;int d1 = n/16;int d2 = n%16;return hexDigits[d1] +hexDigits[d2];

}/*** MD5加密 byte 数据

*

*@paramsource

* 要加密字符串的byte数据

*@return

*/

public static String getMD5(byte[] source) {

String s= null;char hexDigits[] = { //用来将字节转换成 16 进制表示的字符

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

java.security.MessageDigest md=java.security.MessageDigest

.getInstance("MD5");

md.update(source);byte tmp[] = md.digest(); //MD5 的计算结果是一个 128 位的长整数,//用字节表示就是 16 个字节

char str[] = new char[16 * 2]; //每个字节用 16 进制表示的话,使用两个字符,//所以表示成 16 进制需要 32 个字符

int k = 0; //表示转换结果中对应的字符位置

for (int i = 0; i < 16; i++) { //从第一个字节开始,对 MD5 的每一个字节//转换成 16 进制字符的转换

byte byte0 = tmp[i]; //取第 i 个字节

str[k++] = hexDigits[byte0 >>> 4 & 0xf]; //取字节中高 4 位的数字转换,//>>>//为逻辑右移,将符号位一起右移

str[k++] = hexDigits[byte0 & 0xf]; //取字节中低 4 位的数字转换

}

s= new String(str); //换后的结果转换为字符串

}catch(Exception e) {

e.printStackTrace();

}returns;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值