读取二代身份证号,做个记录

转自 https://www.amobbs.com/forum.php?mod=viewthread&tid=5548512&highlight=%E8%BA%AB%E4%BB%BD%E8%AF%81


最近用RC523读身份证ID,经过几天摸索和参考网上资料,终于所成功了,特发此贴给有需要的朋友,但愿能少走弯路
RC523 寄存器配置:
       RcSetReg(JREG_TXASK, 0x00);
        RcSetReg(JREG_CONTROL, 0x10);
        RcSetReg(JREG_TXMODE, 0x03);
        RcSetReg(JREG_RXMODE, 0x0B);
        RcSetReg(JREG_TYPEB, 0x03);
        RcSetReg(JREG_DEMOD, 0x4D);
        RcSetReg(JREG_GSN, 0xFF);
        RcSetReg(JREG_CWGSP, 0x3F);
        RcSetReg(JREG_MODGSP, 0x18);
        RcSetReg(JREG_RXTHRESHOLD, 0x4D);
        RcSetReg(JREG_MODWIDTH,0x68);

身份证读卡器的程序流程如下:

先发送0×05,0×00,0×00询卡命令后,身份证返回12字节卡类型代码,不同身份证返回的数据不一样。比如对两个身份证发送询卡命令后分别返回

0×50 0×00 0×00 0×00 0×00 0xd1 0×03 0×86 0×0c 0×00 0×80 0×80

0×50 0×00 0×00 0×00 0×00 0xd1 0×03 0×86 0×07 0×00 0×80 0×90

询卡成功后,发送SELECT命令:0×1d 0×00 0×00 0×00 0×00 0×00 0×08 0×01 0×08 对二代身份证进行选卡操作。这时身份证返回的第一个字节应该等于SELECT命令的最后一个字节0×08,根据这个条件来判断SELECT命令是否操作成功。


最后发送GUID命令:0×00 0×36 0×00 0×00 0×08,身份证会返回10字节数据,其中前8字节就是身份证的唯一ID,后两字节是0×90 0×00。可以用后两字节来判断得到的是否是身份证ID。



转自 https://www.amobbs.com/forum.php?mod=viewthread&tid=5588921

二代身份证UID读取测试   二代证是应答标准的REQB指令的,但Attrib指令是非标的,
二代证的唯一UID可以通过下面的步骤简单读取,
1. PCD发送REQB命令:  0x05 0x00 0x00  二代证收到后会发送ATQB(12 bytes)应答。  例:50  00  00  00  00  d1  03  86  0c  00  80  80   
2.PCD发送非标Attrib命令  1d  00  00  00  00  00  08  01  08   二代证返回应答:08 //这里返回08不能认为是错误的,ISO14443标准返回为00
3.PCD发送读取UID命令    00  36  00  00  08   二代证返回应答:xx xx xx xx xx xx xx xx 90  00   
Sent bits:     05  00  00   
Received bits: 50  00  00  00  00  d1  03  86  0c  00  80  80   
Sent bits:     1d  00  00  00  00  00  08  01  08   
Received bits: 08   
Sent bits:     00  36  00  00  08   
Received bits: xx xx xx xx xx xx xx xx 90  00




  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要在Vue 3中实现NFC读取身份证号功能,你需要使用Web NFC API。这个API允许网页应用程序与NFC标签进行通信并读取数据。以下是实现这一功能的简单步骤: 1. 首先,在Vue 3项目中安装必要的依赖项,包括 @vue/web-api 和 nfc-pcsc。 ``` npm install @vue/web-api nfc-pcsc ``` 2. 在Vue组件中导入所需的依赖项,并在mounted钩子中初始化NFC读卡器。 ```javascript import { defineComponent } from 'vue' import { useNfc } from '@vue/web-api' import nfcPcsc from 'nfc-pcsc' export default defineComponent({ mounted() { const { reader, reading } = useNfc(nfcPcsc) // 初始化读卡器 reader.value .init() .then(() => console.log('NFC Reader initialized!')) .catch(err => console.error('Failed to initialize NFC Reader', err)) } }) ``` 3. 在模板中添加按钮或其他元素来触发读取身份证号的操作,并使用v-if指令根据读取状态控制元素的显示。 ```html <template> <div> <button @click="readCard" v-if="!reading">读取身份证号</button> <span v-if="reading">正在读取,请靠近身份证</span> <div v-if="cardNumber">身份证号:{{ cardNumber }}</div> </div> </template> ``` 4. 在Vue组件中添加读取身份证号的方法,该方法将使用NFC读卡器来获取身份证号。 ```javascript export default defineComponent({ data() { return { reading: false, cardNumber: null } }, methods: { async readCard() { this.reading = true try { // 获取NFC标签 const tag = await reader.value.scan() // 读取身份证号 const response = await tag.sendCommand([0x00, 0xCA, 0x01, 0x00, 0x00]) // 将身份证号存储在组件数据中 this.cardNumber = String.fromCharCode(...response.slice(0, 16)) } catch (err) { console.error('Failed to read card', err) } this.reading = false } } }) ``` 这就是如何在Vue 3中使用Web NFC API实现读取身份证号的简单步骤。请注意,Web NFC API目前仅适用于Android设备和Chrome浏览器。要在其他设备和浏览器上使用NFC,您需要使用其他API或库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值