diff --git a/pages/memorial/nfcPairing.vue b/pages/memorial/nfcPairing.vue index aba2639..31b4f15 100644 --- a/pages/memorial/nfcPairing.vue +++ b/pages/memorial/nfcPairing.vue @@ -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") {