对接物流API接口中的签名校验(md5+base64方式)总结

本文总结了对接物流API接口时进行签名校验的重要性,包括防止参数篡改和防止刷数据。介绍了使用DigestUtils和MD5Util两个库实现md5+base64加密的方法,生成不同格式的签名,并强调了根据物流公司要求灵活调整签名构造的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对接物流API接口中的签名校验(md5+base64方式)总结


前言

最近对接了几个物流公司的API接口,因为不同的物流公司对于其回调数据生成签名的方式不一样,所以想在此做一个总结。


一、为什么要进行接口签名校验?

这里借用此篇博客 开放API校验签名机制 里的说法,主要功能有两个:其一是防止用户传的参数被篡改,其二是防止多次请求刷数据。具体的例子可以参见上述所提的博客。

二、签名加密方式

目前仅涉及自己所接触到的md5+base64两种签名机制

1. DigestUtils实现md5加密

最终生成签名如 CPQgpysD9f/Bbt5NTNGVpE== 形式

代码如下:

String initStr = String.format("%s%s", JSON.toJSONString(req), privateKey);
byte[] encode = (new Base64()).encode(DigestUtils.md5(initStr));
String sign = new String(encode);

2. MD5Util实现md5加密

最终生成签名如 NGU0Yjk1NDc3MTVkYjljZDYxZWUxMTIxYmUzN2ZhYWI= 形式

代码如下:

String initStr = String.format("%s%s%", JSON.toJSONString(req), privateKey);
byte[] bytes = MD5Util.getMd5(initStr).getBytes();
String sign = new String(Base64.encodeBase64(bytes), StandardCharsets.UTF_8);

privateKey为用户私钥,需根据不同物流公司的签名构造方法灵活进行拼接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值