对数据进行签名

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

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

基本思路

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

使用场景

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

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

最后欢迎start和指正

本帖已被设为精华帖!
本帖由系统于 7年前 自动加精
liyu001989
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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