## 签名加密 / **加签**
###### 最后更新日期:**2021-08-08 12:00:00**
*****
以下是计算签名字段的步骤; 步骤一:发送的参数使用"键=值”的方式存储,当前没有 sign 参数 步骤二:使用“&”将参数的键值链接起来,例如:key1=value1&key2=value2....keyn=valuen,要注意计算签名时, 会对 KEY 按照升序排列。 步骤三:将分配的秘钥追加在步骤二生成字符串的后边。 步骤四:最终 sign 将会是步骤三字符串的哈希值。对于接收的信息,接入方将使用相同的算法来计算签名保证消息传输的准确性。**注意,biz_content是用urlencode处理后的值进行签名运算。**
### **1 传入的参数**
```
var param={ "app_key":"575d1166997f9b3359b37b36", "method":'oms.trade.add', "version":"1.0", "biz_content":"%7B%7D" }
```
### **2 字典排序生成待签名字符串**
根据key排序得到:
```
var param={ "app_key":"575d1166997f9b3359b37b36", "biz_content":"%7B%7D", "method":'oms.trade.add', "version":"1.0"}
```
使用“&”和“=”连接参数组,得到:
```
var signString="app_key=575d1166997f9b3359b37b36&biz_content=%7B%7D&method=oms.trade.add&version=1.0"
```
### **3 加上token(signString+app\_secret)**
假设app\_secret 为1234567890abc
```
var signStringKey="app_key=575d1166997f9b3359b37b36&biz_content=%7B%7D&method=oms.trade.add&version=1.01234567890abc"
```
### **4 MD5**
```
var signature=MD5(signStringKey);
```
对字符串进行md5运算,结果字母取小写