lm68140318 发表于 2023-9-19 10:53:15

Signature

我的问题:Signature这个值是如何求出来的??

isdkz 发表于 2023-9-19 10:53:29

Signature(签名)是一种用于验证请求的身份的机制,通常用于API接口的访问授权。

签名的生成通常需要以下几个参数:

1. 请求参数:即请求中携带的所有参数,包括请求方法、请求路径、请求参数等。

2. 密钥:用于加密生成签名的密钥,只有具有密钥的用户才能生成有效的签名。

3. 加密算法:用于生成签名的加密算法,常见的有MD5、SHA1、SHA256等。

具体生成签名的过程可以分为以下几步:

1. 将所有请求参数按照参数名的字典序排序。

2. 将排序后的请求参数按照“参数名=参数值”的格式拼接成一个字符串。

3. 在拼接好的字符串末尾加上密钥。

4. 对加密前的字符串进行加密,生成签名。

例如,假设我们要请求一个API接口,请求参数为:

{
"method": "GET",
"path": "/api/user/info",
"timestamp": "1626179375",
"app_key": "123456",
"token": "abcdefg"
}


假设我们的密钥为 abcdefg ,加密算法为MD5,则生成签名的过程如下:

1. 将所有请求参数按照参数名的字典序排序,得到:

{
"app_key": "123456",
"method": "GET",
"path": "/api/user/info",
"timestamp": "1626179375",
"token": "abcdefg"
}


2. 将排序后的请求参数按照“参数名=参数值”的格式拼接成一个字符串,得到:

app_key=123456&method=GET&path=/api/user/info&timestamp=1626179375&token=abcdefg


3. 在拼接好的字符串末尾加上密钥,得到:

app_key=123456&method=GET&path=/api/user/info&timestamp=1626179375&token=abcdefgabcdefg


4. 对加密前的字符串进行加密,生成签名,得到:

MD5("app_key=123456&method=GET&path=/api/user/info&timestamp=1626179375&token=abcdefgabcdefg") = "e8f9e8c3c4a4e1b4b7c6d7c4d4e8e7b1"


最终,我们得到了签名 e8f9e8c3c4a4e1b4b7c6d7c4d4e8e7b1 。在请求API接口时,我们需要将签名作为一个参数传递给服务器,服务器会根据签名验证请求的合法性。

wuliangtdi 发表于 2023-9-19 12:42:32

isdkz 发表于 2023-9-19 10:53
Signature(签名)是一种用于验证请求的身份的机制,通常用于API接口的访问授权。

签名的生成通常需要以 ...

笑死我了,牛头不对马嘴

isdkz 发表于 2023-9-19 12:43:46

wuliangtdi 发表于 2023-9-19 12:42
笑死我了,牛头不对马嘴

还是要保重身体呀{:10_277:}
页: [1]
查看完整版本: Signature