数组中的每个数字拆解为二进制做异或,获得校验码
This commit is contained in:
parent
b0a18ddd3b
commit
50f7b329ab
|
|
@ -683,9 +683,18 @@ export default {
|
||||||
|
|
||||||
// 转换为十进制字符串
|
// 转换为十进制字符串
|
||||||
// NFC 卡号通常按照字节顺序(大端序)存储
|
// 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("卡号长度:", cardNo.length, "字符");
|
||||||
console.log("========================");
|
console.log("========================");
|
||||||
} else if (typeof res.id === "string") {
|
} else if (typeof res.id === "string") {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user