Python 进行MD5加密1.对所有API请求参数(包括公共参数和业务参数,但除去sign参数和byte[]类型的参数),根据参数名称的 ASCII码表的顺序排序。如:foo:1, bar:2, foo_bar:3, foobar:4排序后的顺序是bar:2, foo:1, foo_bar:3, foobar:4。 2.将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4 3.把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行摘要。使用MD5算法,则需要在拼 装的字符串前后加上app的secret(secret会有管理员发送给合作伙伴)后,再进行摘要,如: md5(secret+bar2foo1foo_bar3foobar4+secret)。
时间: 2024-02-03 21:14:24 浏览: 147
Python中的函数(课件)
5星 · 资源好评率100%
可以使用Python的 hashlib 模块进行MD5加密,具体实现如下:
```python
import hashlib
def generate_md5_sign(params, secret):
# 第一步:对所有API请求参数排序
sorted_params = sorted(params.items(), key=lambda x: x[0])
# 第二步:拼装参数名和参数值
sign_str = ''
for k, v in sorted_params:
if k != 'sign' and not isinstance(v, bytes):
sign_str += '{}{}'.format(k, v)
# 第三步:加上secret并进行MD5摘要
sign_str = secret + sign_str + secret
md5 = hashlib.md5(sign_str.encode('utf-8'))
return md5.hexdigest()
```
其中,params 是一个字典类型的参数,secret 是 app 的 secret。这个函数会返回一个字符串,即生成的 MD5 签名。
阅读全文