打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
签名-Md5加密
package com.zx.com.cn.dao;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
/**
* 签名
* 使用appSecret+data数据+appSecret进行MD5+base64签名,然后对签名结果转大写,最后对转化后的签名数据使用utf-8 字符集urlEncoding。
* 要发送的XML内容为 test,appSecret为 12345678,则data_digest 生成过程如下:
1.先对12345678test12345678这个串先进行MD5加密,得到:a6fa71c02a94a7627d895057a1ec8655
2.然后base64签名,得到:YTZmYTcxYzAyYTk0YTc2MjdkODk1MDU3YTFlYzg2NTU=
3.签名结果转大写得到:YTZMYTCXYZAYYTK0YTC2MJDKODK1MDU3YTFLYZG2NTU=,对转换后的签名结果使用utf-8 urlEncoding 得到最终签名据:YTZMYTCXYZAYYTK0YTC2MJDKODK1MDU3YTFLYZG2NTU%3D
* @author admin
*
*/
public class MD5Base64Util {
//使用utf-8字符集
protected static String ENCODE = "UTF-8";
/**
*  生成签名sign-1
* @param bizData  data数据
* @param appSecret 固定字符串 例如:12345678
* @return
*/
public String makeSign_one(String bizData, String appSecret) {
//签名格式:appSecret+data数据+appSecret
String data = appSecret + bizData + appSecret;
System.out.println("要加密在数据:"+data);
String sign="";
try {
String md5str = DigestUtils.md5Hex(data);
System.out.println("MD5加密后的字符串为:" + md5str);
String md_base64 = Base64.encodeBase64String(md5str.getBytes());
System.out.println("base64后在数据:"+md_base64);
//将base64字符串转大写
String strUp = md_base64.toUpperCase();
System.out.println("字符串转大写:"+strUp);
//以UTF-8的编码生成字符串
sign = URLEncoder.encode(new String(strUp.getBytes(), ENCODE), ENCODE);
System.out.println("最终的数据:"+sign);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return sign;
}
/**
*  生成签名sign-2
* @param bizData  data数据
* @return
*/
public String makeSign_Two(String bizData) {
String appSecret="12345678";
//签名格式:appSecret+data数据+appSecret
String data = appSecret + bizData + appSecret;
System.out.println("要加密在数据:"+data);
String sign="";
try {
String md5str = DigestUtils.md5Hex(data);
System.out.println("MD5加密后的字符串为:" + md5str);
String md_base64 = Base64.encodeBase64String(md5str.getBytes());
System.out.println("base64后在数据:"+md_base64);
//将base64字符串转大写
String strUp = md_base64.toUpperCase();
System.out.println("字符串转大写:"+strUp);
//以UTF-8的编码生成字符串
sign = URLEncoder.encode(new String(strUp.getBytes(), ENCODE), ENCODE);
System.out.println("最终的数据:"+sign);
} catch ( UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
return sign;
}
//主入口
public static void main(String[] args) {
MD5Base64Util mD5Base64 =new MD5Base64Util();
String sign = mD5Base64.makeSign_one("test", "12345678");
System.out.println(sign);
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASIS CTF Finals 2020 - babymd5
MD5加密字符串处理
MD5加密
用Python生成文件的MD5校验码
解决Java中MD5加密utf-8格式时与其他语言不同的问题
MD5加密总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服