From 50f7b329abec63855a88dc51af2a2c9e554a7622 Mon Sep 17 00:00:00 2001 From: WindowBird <13870814+windows-bird@user.noreply.gitee.com> Date: Thu, 20 Nov 2025 15:05:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E7=BB=84=E4=B8=AD=E7=9A=84=E6=AF=8F?= =?UTF-8?q?=E4=B8=AA=E6=95=B0=E5=AD=97=E6=8B=86=E8=A7=A3=E4=B8=BA=E4=BA=8C?= =?UTF-8?q?=E8=BF=9B=E5=88=B6=E5=81=9A=E5=BC=82=E6=88=96=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=BE=97=E6=A0=A1=E9=AA=8C=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/memorial/nfcPairing.vue | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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") {