通用签名规则介绍

前提:1.目前支持form-data、x-www-form-urlencoded、json、raw的body格式,也支持地址栏拼接query参数。2.请求以实际发出的数据为准,如页面配置的密码为123456,实际请求对123456做了md5加密,则签名数据以md5加密后的内容为准。3.未实现对文件的签名功能

签名生成的通用步骤如下:

一、根据BODY的数据格式(去空格和回车),拼接在签名数据的最前面,得到结果串1。如果不存在则忽略此步骤

  • 得到结果串 1:格式为JSON拼接json=对象数据的JSON字符串
json={"routeId":"11","devEnv":"lb://ocp-manager-service","prodEnv":"172.16.4.103:29001","path":"/111/111","method":1}

在这里插入图片描述

  • 得到结果串 1:格式为form-data拼接form-data=表单数据,中间加上&分隔符
form-data=routeId=11&devEnv=lb://ocp-manager-service&prodEnv=172.16.4.103:29001&path=/111/111&method=1

!在这里插入图片描述

  • 得到结果串 1:格式为x-www-form-urlencoded拼接form-urlencoded=表单数据,中间加上&分隔符(中文和特殊符号会进行urlencode)
form-urlencoded=routeId=11&devEnv=lb%3A%2F%2Focp-manager-service&prodEnv=172.16.4.103%3A29001&path=%2F111%2F111&method=1

在这里插入图片描述

  • 得到结果串 1:格式为raw拼接text=加上body文本
text={"routeId":"11","devEnv":"lb://ocp-manager-service","method":1,"prodEnv":"172.16.4.103:29001","path":"/111/111"}

在这里插入图片描述

二、对请求行(地址栏)参数进行排序并拼接在结果串1的后面。

(1)对获取的所有请求行(地址栏)参数进行参数名ASCII码从小到大排序(字典序)
(2)如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推
(3)将排序后的参数与其对应,组成参数=参数值格式,并把参数串用&连接起来
(4)参数名区分大小写,在结果串1的后面拼接上排好序的数据,中间需要加上&分隔符
(5)若有中文和特殊字符需要进行 URLEnocde 编码
在这里插入图片描述

  • 得到结果串 2:json 格式
json={"routeId":"11","devEnv":"lb://ocp-manager-service","method":1,"prodEnv":"172.16.4.103:29001","path":"/111/111"}&checkFlag=1&limit=1&page=1
  • 得到结果串 2:form-data 格式
form-data=routeId=11&devEnv=lb://ocp-manager-service&prodEnv=172.16.4.103:29001&path=/111/111&method=1&checkFlag=1&limit=1&page=1
  • 得到结果串 2:x-www-form-urlencoded 格式(中文和特殊符号会进行urlencode)
form-urlencoded=routeId=11&devEnv=lb%3A%2F%2Focp-manager-service&prodEnv=172.16.4.103%3A29001&path=%2F111%2F111&method=1&checkFlag=1&limit=1&page=1
  • 得到结果串 2:raw 格式
text={"routeId":"11","devEnv":"lb://ocp-manager-service","method":1,"prodEnv":"172.16.4.103:29001","path":"/111/111"}&checkFlag=1&limit=1&page=1

三、在结果串2的后面按固定顺序拼接上appid、timesstamp、nonce这三个参数的具体值,中间加上&分隔符,timesstamp为时间戳,nonce推荐32位UUID

请求头参数
Ocp-Timestamp1609210702227
Ocp-NonceHzW4iRHXBAsTXsNXyFi64s0xiEMjSR6s
Ocp-AppId9dfb3bf5097d4f7fbec2003d7163c111
  • 得到结果串 3:json 格式
json={"routeId":"11","devEnv":"lb://ocp-manager-service","method":1,"prodEnv":"172.16.4.103:29001","path":"/111/111"}&checkFlag=1&limit=1&page=1&9dfb3bf5097d4f7fbec2003d7163c111&1609210702227&HzW4iRHXBAsTXsNXyFi64s0xiEMjSR6s
  • form-data 格式
form-data=routeId=11&devEnv=lb://ocp-manager-service&prodEnv=172.16.4.103:29001&path=/111/111&method=1&checkFlag=1&limit=1&page=1&9dfb3bf5097d4f7fbec2003d7163c111&1609210702227&HzW4iRHXBAsTXsNXyFi64s0xiEMjSR6s
  • x-www-form-urlencoded 格式(中文和特殊符号会进行urlencode)
form-urlencoded=routeId=11&devEnv=lb%3A%2F%2Focp-manager-service&prodEnv=172.16.4.103%3A29001&path=%2F111%2F111&method=1&checkFlag=1&limit=1&page=1&9dfb3bf5097d4f7fbec2003d7163c111&1609210702227&HzW4iRHXBAsTXsNXyFi64s0xiEMjSR6s
  • raw 格式
text={"routeId":"11","devEnv":"lb://ocp-manager-service","method":1,"prodEnv":"172.16.4.103:29001","path":"/111/111"}&checkFlag=1&limit=1&page=1&9dfb3bf5097d4f7fbec2003d7163c111&1609210702227&HzW4iRHXBAsTXsNXyFi64s0xiEMjSR6s
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值