Commit 7eef828e authored by lyong's avatar lyong

优化evm校验

parent d1d27272
......@@ -760,13 +760,29 @@ function verifyHostIDChecksum() {
* @param {string} s 输入字符串
* @returns {string} 返回 "0xXX" 格式校验和
*/
function calculateSumChecksum(s) {
if (!s) return "0X00";
let sum = 0;
for (let i = 0; i < s.length; i++) {
if (s[i] !== '-') sum += s.charCodeAt(i) & 0xFF;
function calculateSumChecksum(dataString) {
console.log("calculateSumChecksum dataString: " + dataString);
if (!dataString) return "0X00";
try {
// 1. 移除可能的空格并按连字符分割
let parts = dataString.replace(/-/g, "");
let totalSum = 0;
// 2. 遍历每个字符,将其转换为整数并累加
for (let i = 0; i < parts.length; i++) {
totalSum += parseInt(parts[i], 10);
}
// 3. 取低 8 位 (等效于 totalSum & 0xFF)
let checksum = "0X" + (totalSum & 0xFF).toString(16).toUpperCase().padStart(2, '0');
console.log(`累加和为 ${checksum}`);
return checksum;
} catch (e) {
console.error(`计算累加和校验时出错: 数据包含非数字部分。${e}`);
return "0X00"; // 或返回错误码/None
}
return "0X" + (sum & 0xFF).toString(16).padStart(2, '0').toUpperCase();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment