为了方便理解,我们此处使用单码登录接口做示例 本章节主要介绍如何进行签名和验签
排序规则为 &开头,=结尾的表示为请求参数(即&card=系统将在请求中获取card去排序)
{
"card":"卡密",
"machine":"机器码",
"app_code":"应用编号",
"timestamp":"10000000"
}&card=,&machine=,×tamp=,&app_code=signature=sha256(card=卡密&machine=机器码&tiemstamp=10000000&app_code=应用编号)&链接,然后对整体的字符串进行SHA256签名,并且附加在原参数后新增signature参数 {
"card":"卡密",
"machine":"机器码",
"app_code":"应用编号",
"timestamp":"10000000",
"signature":"9c1b276b0a0ae0b7ff97e888a234db99c98f5432d49a71e2d4cfc2feab653b9e"
}在阅读中级示例之前请先彻底理解用例一 用例二将在用例一的基础上新增常量
&card=,&machine=,helloworld,×tamp=,app_codesignature=sha256(card=卡密&machine=机器码helloworld&tiemstamp=10000000&app_code=应用编号){
"code": 200,
"msg": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjY1NjIwMjcsImlzcyI6IkNvb2tpZVNvZnRXZWLlvIDlj5FR77yaMzEzMDg5NDEyNiIsInJlZGlzX2tleSI6InRlc3RKdWJiMzBObmVZNFlSMG9DelRncThOQ2Nya1hQOmg4MVRlRjZBIn0.K36F7-96v72-papRM8E0eFLhzYAnMh7Ervw0OhqTwSc"
},
"nonce": "",
"signature": ""
}&msg=,&code=,&nonce=,&token=signature=sha256(msg=登录成功&code=200&nonce=&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjY1NjIwMjcsImlzcyI6IkNvb2tpZVNvZnRXZWLlvIDlj5FR77yaMzEzMDg5NDEyNiIsInJlZGlzX2tleSI6InRlc3RKdWJiMzBObmVZNFlSMG9DelRncThOQ2Nya1hQOmg4MVRlRjZBIn0.K36F7-96v72-papRM8E0eFLhzYAnMh7Ervw0OhqTwSc){
"code": 200,
"msg": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjY1NjIwMjcsImlzcyI6IkNvb2tpZVNvZnRXZWLlvIDlj5FR77yaMzEzMDg5NDEyNiIsInJlZGlzX2tleSI6InRlc3RKdWJiMzBObmVZNFlSMG9DelRncThOQ2Nya1hQOmg4MVRlRjZBIn0.K36F7-96v72-papRM8E0eFLhzYAnMh7Ervw0OhqTwSc"
},
"nonce": "",
"signature": "e76740af2b756bcc9389e5cdb406ac49f9f250b71bd1b8142bfe3062dea22d8d"
}在阅读中级示例之前请先彻底理解用例一 用例二将在用例一的基础上新增常量
&开头=结尾的参数可以用来表示响应中的参数&msg=,&code=,&nonce=,helloworld,&token=signature=sha256(msg=登录成功&code=200&nonce=helloworld&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjY1NjIwMjcsImlzcyI6IkNvb2tpZVNvZnRXZWLlvIDlj5FR77yaMzEzMDg5NDEyNiIsInJlZGlzX2tleSI6InRlc3RKdWJiMzBObmVZNFlSMG9DelRncThOQ2Nya1hQOmg4MVRlRjZBIn0.K36F7-96v72-papRM8E0eFLhzYAnMh7Ervw0OhqTwSc){
"code":200,
"msg":"success",
"data":{
"msg":"test"
},
"nonce":"",
"signature":""
}"msg":'success' 和 "msg":"test" 系统将优先读取顶级的字段 即 "msg":'success'&msg=...的时候,此处的msg为顶级的msg 即 "msg":'success'code,msg,nonce&card=,&machine=,&nonce={
"card":"单码卡密",
"machine":"",
"nonce":"123"
}signature=sha256(card=单码卡密&machine=&nonce=123)signature=sha256(card=单码卡密&nonce=123)