JavaScript 代码转换为 Java 代码 - 使用 MD5 签名验证
JavaScript 代码转换为 Java 代码 - 使用 MD5 签名验证
JavaScript 代码:
const timestamp = Date.now()
const token = getToken()
if (token) {
const sign = getToken() + '$' + timestamp
config.headers['Authorization'] = 'Bearer ' + getToken()
config.headers['sign'] = MD5(Base64.stringify(Utf8.parse(sign)))
.toString()
.toUpperCase()
config.headers['timespan'] = timestamp
}
Java 代码:
long timestamp = System.currentTimeMillis();
String token = getToken();
if (token != null && !token.isEmpty()) {
String sign = getToken() + '$' + timestamp;
config.headers().put('Authorization', 'Bearer ' + getToken());
config.headers().put('sign', DigestUtils.md5Hex(Base64.encodeBase64String(sign.getBytes())).toUpperCase());
config.headers().put('timespan', String.valueOf(timestamp));
}
代码说明:
- 时间戳:
Date.now()在 JavaScript 中获取当前时间戳,System.currentTimeMillis()在 Java 中获取当前时间戳。 - token:
getToken()函数用于获取 token。 - 签名生成:
sign = getToken() + '$' + timestamp生成签名字符串,包含 token 和时间戳。 - Base64 编码:
Base64.stringify(Utf8.parse(sign))在 JavaScript 中将签名字符串进行 Base64 编码,Base64.encodeBase64String(sign.getBytes())在 Java 中进行 Base64 编码。 - MD5 哈希:
MD5(Base64.stringify(Utf8.parse(sign)))在 JavaScript 中对 Base64 编码后的签名字符串进行 MD5 哈希运算,DigestUtils.md5Hex(Base64.encodeBase64String(sign.getBytes()))在 Java 中进行 MD5 哈希运算。 - 添加 headers:
config.headers['Authorization'] = 'Bearer ' + getToken()和config.headers['sign'] = ...在 JavaScript 中添加 Authorization 和 sign 头信息,config.headers().put('Authorization', 'Bearer ' + getToken())和config.headers().put('sign', ...)在 Java 中添加头信息。 - 时间戳头信息:
config.headers['timespan'] = timestamp在 JavaScript 中添加 timespan 头信息,config.headers().put('timespan', String.valueOf(timestamp))在 Java 中添加头信息。
注意:
- 代码中使用
getToken()函数获取 token,需要根据实际情况进行替换。 - 需要引入相应的库,如 Java 中的
commons-codec和commons-lang3库。 - 代码示例仅供参考,具体实现可能需要根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/nQ1g 著作权归作者所有。请勿转载和采集!