编写安全的API接口

HTTPS接口参数加密签名设计思路

数名

类型

必选

描述

_appid string 调用方身份ID,接口提供方用此来识别调不同的调用者,该参数是API基本规范的一部分,请详见API公共规范。

_sign

string

是 

一次接口调用的签名值,服务器端 “防止 伪装请求/防篡改/ 防重发” 识别的重要依据。

_timestamp

Int

时间戳(long Timestamp = DateTime.Now.Ticks;)

签名算法过程:

1、对除签名外的所有请求参数按key做的升序排列,value无需编码。

例如:有c=3,b=2,a=1 三个参,另加上时间戳后, 按key排序后为:a=1,b=2,c=3,_timestamp=12345678。

2、把参数名和参数值连接成字符串,得到拼装字符:a1b2c3_timestamp12345678

3、用申请到的appkey 连接到接拼装字符串头部和尾部,然后进行32位MD5加密,最后将到得MD5加密摘要转化成大写

示例:假设appkey=test,md5(testa1b2c3_timestamp12345678test),取得MD5摘要值 C5F3EB5D7DC2748AED89E90AF00081E6 。

4、可以使用HTTPS协议让安全性达到一个新的级别。

原文地址:https://www.cnblogs.com/ijavanese/p/9663433.html