有没有和明道云对接过的代码

阅读次数 11

有没有和明道云对接过的代码

import time import hashlib import hmac from wsgiref.handlers import format_date_time
from time import mktime

输入参数

appkey = input["key"] secretKey = input["SecretKey"] body = input.get("body", "") # 确保body不是空字符串,如果为空则默认空字符串 encode = 'utf-8'

生成 RFC1123 时间格式的当前时间

now = time.gmtime() stamp = mktime(now) date = format_date_time(stamp)

生成 HTTP Body 的 MD5 值,十六进制小写格式

md5_hash = hashlib.md5() md5_hash.update(body.encode(encoding=encode)) content_md5 = md5_hash.hexdigest().lower()

固定的 Content-Type

content_type = "application/json"

生成 Authorization 字段

to_sign = secretKey + content_md5 + content_type + date signature = hmac.new(secretKey.encode(encode), to_sign.encode(encode), hashlib.sha1).hexdigest() authorization = f"WPS-2:{appkey}:{signature}"

时间戳和 token 的生成

timespan = str(int(time.time())) token = appkey + timespan + secretKey hl = hashlib.md5() hl.update(token.encode(encoding=encode))
token = hl.hexdigest().upper()

输出结果

output = { "timespan": timespan, "token": token, "Date": date,
"Content-Md5": content_md5,
"Content-Type": content_type,
"Authorization": authorization
}

输出校验

for key, value in output.items(): print(f"{key}\n文本\n{value}")

转MD5 这样转有问题吗 是文件地址转MD5 吗?

1 Answers

import time import hashlib import hmac from wsgiref.handlers import format_date_time
from time import mktime

输入参数

appkey = input["key"] secretKey = input["SecretKey"] body = input.get("body", "") # 确保body不是空字符串,如果为空则默认空字符串 encode = 'utf-8'

生成 RFC1123 时间格式的当前时间

now = time.gmtime() stamp = mktime(now) date = format_date_time(stamp)

生成 HTTP Body 的 MD5 值,十六进制小写格式

md5_hash = hashlib.md5() md5_hash.update(body.encode(encoding=encode)) content_md5 = md5_hash.hexdigest().lower()

固定的 Content-Type

content_type = "application/json"

生成 Authorization 字段

to_sign = secretKey + content_md5 + content_type + date signature = hmac.new(secretKey.encode(encode), to_sign.encode(encode), hashlib.sha1).hexdigest() authorization = f"WPS-2:{appkey}:{signature}"

时间戳和 token 的生成

timespan = str(int(time.time())) token = appkey + timespan + secretKey hl = hashlib.md5() hl.update(token.encode(encoding=encode))
token = hl.hexdigest().upper()

输出结果

output = { "timespan": timespan, "token": token, "Date": date,
"Content-Md5": content_md5,
"Content-Type": content_type,
"Authorization": authorization
}

输出校验

for key, value in output.items(): print(f"{key}\n文本\n{value}")