async function digestMessage(t) {
if (crypto && crypto.subtle && crypto.subtle.digest) {
const e = new TextEncoder().encode(t)
, r = await crypto.subtle.digest("SHA-256", e);
return Array.from(new Uint8Array(r)).map(a=>a.toString(16).padStart(2, "0")).join("")
} else
return sha256Exports.sha256(t).toString()
}
const generateSignature = async t=>{
const {t: e, m: r} = t
, n = {}.PUBLIC_SECRET_KEY
, a = `${e}:${r}:${n}`;
return await digestMessage(a)
}
其中generateSignature是生成sign
digestMessage是对a进行加密。
a是通过加断点得知
e为13位时间戳
r为你输入的文本
n = “undefined”
a = e:r:n
其中digestMessage的第一个if里的加密是在https网站中才可以运行的,目的是sha256加密。else里浏览器中不运行,但目的也是sha256加密
所以python中直接
import hashlib
import time
n = "undefined"
t = int(time.time()*1000)
message = "你好"
signText = f"{t}:{message}:{n}"
sha256 = hashlib.sha256()
sha256.update(signText.encode("utf-8"))
sign = sha256.hexdigest()
就得到sign了