验签
验签
MD5 验签
按 生成MD5签名的方式,对响应数据进行MD5计算,然后将计算结果与响应中的 sign 进行比较,一致代表数据未被篡改,可以信任,否则忽略
MD5 验签示例
function verifyMD5(response) {
const data = Object.keys(response)
.sort()
.reduce((obj, key) => {
obj[key] = response[key]
return obj
}, {})
var str = ''
Object.keys(data).forEach((key) => {
if (data[key] != '' && key != 'sign') {
str = str + key + '=' + data[key] + '&'
}
})
str = str + 'pkey=' + YOUR_MD5_SECRET_KEY
return md5(str) == response['sign']
}
RSA 验签签名
RSA验证签名需要按 RSA签名生成规则 对 response 生成 URL key-value 格式的字符串, 然后使用 UseePay RSA 公钥进行签名验证
function verifyRSA(response) {
const data = Object.keys(response)
.sort()
.reduce((obj, key) => {
obj[key] = response[key]
return obj
}, {})
var str = ''
Object.keys(data).forEach((key) => {
if (data[key] != '' && key != 'sign') {
str = str + key + '=' + data[key] + '&'
}
})
var result = new NodeRSA(USEEPAY_RSA_PUBLICK_KEY, 'pkcs8-public').verify(
Buffer.from(str),
response['sign'],
'base64',
'base64',
)
return result
}
最后修改时间: 2 年前