对数据进行签名

之前看到v2ex上的一个帖子https://www.v2ex.com/t/326285,然后回想一下对接支付宝和微信的时候,其实都有过类似的处理。

然后照着这个思路写了一个package,https://github.com/liyu001989/signature

基本思路

首先如果目标数据是个数组,就需要先进行ksort排序,然后在转换为字符串,转换字符串自然就想到用json_encode了。最后进行签名,调用hash_hmac或者私钥签名。

使用场景

其实使用的场景还是挺过的,首先就是对于webhook这类的通知,想象一下支付宝支付成功了之后的异步通知,我们怎么确定这个通知是支付宝发起的,数据是否有效,是否被篡改,那么加上签名就很有用了。

还有就是,如帖子中所说,确定客户端的身份,保证客户端发起的请求不会被伪造,也不会被篡改。这个客户端的定义应该很广了,app,服务器等等。大家对接各种第三方应用的时候应该都有过类似体验。

最后欢迎start和指正

本帖已被设为精华帖!
本帖由系统于 7年前 自动加精
liyu001989
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!