数组中的每个数字拆解为二进制做异或,获得校验码
This commit is contained in:
parent
b0a18ddd3b
commit
50f7b329ab
|
|
@ -683,9 +683,18 @@ export default {
|
|||
|
||||
// 转换为十进制字符串
|
||||
// NFC 卡号通常按照字节顺序(大端序)存储
|
||||
cardNo = bytes.join("").toUpperCase();
|
||||
const baseCardNo = bytes.join("").toUpperCase();
|
||||
|
||||
console.log("转换后的卡号(十进制字符串):", cardNo);
|
||||
// 计算异或校验码(按位异或)
|
||||
const checksum = bytes.reduce((acc, curr) => acc ^ curr, 0);
|
||||
const checksumBinary = checksum.toString(2).padStart(8, "0");
|
||||
|
||||
cardNo = `${baseCardNo}${checksum}`;
|
||||
|
||||
console.log("转换后的卡号(十进制字符串+校验):", cardNo);
|
||||
console.log("基础卡号部分:", baseCardNo);
|
||||
console.log("校验码(二进制):", checksumBinary);
|
||||
console.log("校验码(十进制):", checksum);
|
||||
console.log("卡号长度:", cardNo.length, "字符");
|
||||
console.log("========================");
|
||||
} else if (typeof res.id === "string") {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user