当前位置: 首页 > news >正文

中国建设银行网站的社保板块在哪里湖北微网站建设报价

中国建设银行网站的社保板块在哪里,湖北微网站建设报价,交通银行网站开发,网站是做流程前言: 项目中需要调用其他系统的 api 接口,接口使用的是按一定规则生成 MD5 密文作为签名来进行身份验证,本文仅记录 32 位 MD5 密文的生成方式,仅供参考。 什么是MD5 加密? MD5 加密是一种加密算法,MD5…

前言:

项目中需要调用其他系统的 api 接口,接口使用的是按一定规则生成 MD5 密文作为签名来进行身份验证,本文仅记录 32 位 MD5 密文的生成方式,仅供参考。

什么是MD5 加密?

MD5 加密是一种加密算法,MD5 加密算法被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致,同时 MD5 加密是一种不可逆的加密算法,不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样加密算法处理,得到相同的密文被系统重新识别后,才能真正解密。

对方系统签名规则:

1、构造签名因子:将Headers除"sign"外的所有参数按key进行字!典升序排列。
2、构造签名因子:将第1步中排序后的参数(key=value)用&拼接起来。
2、对构造的签名因子执行md5_32位算法,sign=uppercase (md5_32(s))得到签名。

生成 MD5 签名规则的工具类:

@Slf4j
public class MD5Utils {/*** @Description: MD5 加密* @Date: 2024/4/3 13:38*/public static String md5Encrypt(String plainText) {String cipherText;try {MessageDigest md = MessageDigest.getInstance("MD5");md.update(plainText.getBytes());byte[] bytes = md.digest();int i;StringBuilder buf = new StringBuilder();for (byte aByte : bytes) {i = aByte;if (i < 0) {i += 256;}if (i < 16) {buf.append("0");}buf.append(Integer.toHexString(i));}cipherText = buf.toString();} catch (NoSuchAlgorithmException e) {log.error("MD5 加密失败,失败原因:", e);throw new BusinessException("MD5 加密失败");}return cipherText;}/*** @Description: 排序并构造参数* @Date: 2024/4/3 13:57*/public static String formatParam(Map<String, String> param) {String params;try {List<Map.Entry<String, String>> itmes = new ArrayList<>(param.entrySet());//对所有传入的参数按照字段名从小到大排序//Collections.sort(items); 默认正序//可通过实现Comparator接口的compare方法来完成自定义排序itmes.sort(Map.Entry.comparingByKey());/*Collections.sort(itmes, new Comparator<Map.Entry<String, String>>() {@Overridepublic int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {return (o1.getKey().toString().compareTo(o2.getKey()));}});*///构造key=value键值对的形式StringBuilder sb = new StringBuilder();for (Map.Entry<String, String> item : itmes) {if (StringUtils.isNotBlank(item.getKey())) {sb.append(item.getKey()).append("=").append(item.getValue());sb.append("&");}}params = sb.toString();if (!params.isEmpty()) {params = params.substring(0, params.length() - 1);}} catch (Exception e) {log.error("sign 签名构造失败,失败原因:", e);throw new BusinessException("sign 签名构造失败");}return params;}
}

如有错误的地方欢迎指出纠正。

http://www.yayakq.cn/news/403802/

相关文章:

  • 关于企业网站建设的建议电脑版传奇排行榜
  • 网站建设的意义与价值网络营销方式及流程
  • 汽车租赁网站的设计与实现河北建设集团
  • 保定网站推广多少钱wordpress 登陆重定向
  • 高青云速网站建设做一个网站需要哪些步骤
  • 企业营销类专业网站网站免费优化
  • wordpress建站 防攻击wordpress 友言
  • 公司企业网站维护wordpress免费电子商务插件
  • 自己做免费手机网站吗常熟公司做网站
  • 网站加载页面怎么做wordpress主题开发网站
  • 个人网站静态网页模板wordpress 树形主题
  • 数字化文化馆网站建设代做动画毕业设计的网站
  • 怎样是做网站90设计网官网登录
  • 法学院网站建设建议动画设计制作
  • 触屏网站手机网站建设的费用
  • 简单地产网站怎么上电子 网站模板
  • 做彩平的网站做网站需要会语言吗
  • 成都 网站建设网站美化的目标
  • dw做网站一般是多大的尺寸修改wordpress用户密码
  • html5 企业网站黄石做企业网站
  • 网站设计有哪些语言版本快速排名工具免费查询
  • 深圳做网站排名公司推荐html网站源码下载
  • 宁波网站建设服务提供商做网站添加mp3
  • 杭州便宜的手机网站建设别墅庭院园林景观设计公司
  • 做网站域名的设置一家专门做特卖的网站
  • 招聘网站有哪些平台怎么能看出别人的网站是哪一家做
  • wordpress搭建方案seo整站优化 wordpress
  • 网站搭建公司排行榜安全生产规章制度建筑公司网站
  • 1个月能学好网站开发吗西安建筑人才网
  • 网站建设不完整什么意思电子商城网站怎么做