对数据进行签名

分享 liyu001989 ⋅ 于 2017-01-04 23:51:05 ⋅ 1037 阅读

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

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

基本思路

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

使用场景

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

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

最后欢迎start和指正

liyu001989

本帖已被设为精华帖!
本帖由 JobsLong 于 4个月前 加精
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter