首页 > 其他分享 >使用PCR532(PN532)读取二代身份证uid

使用PCR532(PN532)读取二代身份证uid

时间:2023-07-18 10:11:05浏览次数:71  
标签:读取 libnfc PN532 二代证 PCR532 uid

背景

笔者住的地方大门是智能门禁锁,需要刷身份证或指纹进出,但指纹识别不灵敏经常验证失败,使用身份证可以打开,但是身份证携带不便,更糟糕的是丢失了比较麻烦,笔者通过互联网检索资料了解到二代证是一种ic卡,是遵循ISO14443 Type B协议的卡片,这种ic卡与手机nfc的频率相同,都是13.56mhz,可以使用PN532或者ACR122U等设备进行读写。PN532比ACR122U便宜很多,淘宝拼多多通常30元就可以买到。遂在网上下单购买了一个PCR532,店家号称是PN532的升级版,实际测试发现底层驱动和配置文件里面写的都是PN532,升级的PCR532感觉像是忽悠像我这种不懂行的小白。

这里需要说明的是,笔者运气好,不了解的随意买的情况下买的是那种带usb type-c接口的长方形的PCR532板子,颜色是黑色的,在网上检索资料时,有人说有的PN532(红色方形的那款)读不到卡片,看其他人的回复说可能是这种板子设计或者质量不好,所以尽量不要买红色板子那款。

我买的长这样(下图)

 

据说读不到卡片的长这样(下图)

 

读取流程

由于不太懂行,在网络上找了很多资料,花了好几个小时最后才摸索明白,看网上说因为二代证 ATRB返回值非标,所以需要自己定制读取逻辑,这就需要驱动来操纵PN532设备,驱动网上有开源的libnfc,地址在这里GitHub - nfc-tools/libnfc: Platform independent Near Field Communication (NFC) library ,因为不知道这个库支不支持Windows版本,所以我在Linux(arm的树莓派)下进行的编译。

这里先说明一下探索的步骤

1. 下载libnfc-1.8.0库 (已上传到博客,地址 https://files.cnblogs.com/files/pluse/libnfc-1.8.0.zip?t=1689646032&download=true )

2. 修改 libnfc/chips/pn53x.c文件中 int pn53x_reset_settings(struct nfc_device *pnd)函数

3. 使用官方example目录中的示例代码加以修改获得可读二代证uid的程序

4. 安装libnfc库所需的依赖

5. 编译libnfc

6. 读取二代证uid

标签:读取,libnfc,PN532,二代证,PCR532,uid
From: https://www.cnblogs.com/pluse/p/17562053.html

相关文章

  • ef orm unique约束 uuid 创建前检查
    设置uuidnamespaceEF6SQLiteTutorial.Models{publicclassPeople{publicintId{get;set;}//设置uuidpublicGuidUuid{get;set;}=Guid.NewGuid();publicstringName{get;set;}=string.Empty;publ......
  • custom use 定义 以及uuid 做pk
    applicaton/models/user.pyimportuuidfromdjango.contrib.auth.modelsimportAbstractUserfromdjango.contrib.auth.validatorsimportUnicodeUsernameValidatorfromdjango.core.validatorsimportRegexValidatorfromdjango.dbimportmodels#カスタムユーザ......
  • ble开发 蓝牙服务中对服务、特性、属性以及UUID的理解
    1.蓝牙服务包括多个服务(service),如下为蓝牙串口通信例程的三个服务 2.其中每个服务包括多个特性(Characteristic),如下为GenericAccess服务的四个特性 3.属性即为每个特性是否可读写 4.每个特性都有其对应的UUID简单理解UUID就是编号,服务和特性都有各自的UUID他们都是唯一......
  • java项目配置druid监控页面
    druid监控页面如图: 满足条件:1.项目引入了druid相关的jar包 2.项目加入druid相关的配置#####druid监控#####WebStatFilter配置spring.datasource.druid.web-stat-filter.enabled=truespring.datasource.druid.web-stat-filter.url-pattern=/*spring.datasource.......
  • druid数据库与连接池
    druid.propertiesurl=jdbc:mysql://localhost:3306/db01?rewriteBatchedStatements=trueusername=rootpassword=1234driverClassName=com.mysql.cj.jdbc.DriverinitialSize=10maxActive=20maxWait=1000filters=walldruidTestpackageDruid;//引入jar包import......
  • druid报错:com.alibaba.druid.util.JdbcUtils - close connection error
    druid报错:com.alibaba.druid.util.JdbcUtils-closeconnectionerrorERRORcom.alibaba.druid.util.JdbcUtils-closeconnectionerrorjava.sql.SQLRecoverableException:IO错误:Socketreadtimedoutatoracle.jdbc.driver.T4CConnection.logoff(T4CConnect......
  • druid开启sql监控平台
    1、maven导入依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency>2、编写DruidConfig配置文件importcom......
  • Illiquid asset
    Definitionof'Illiquid'Thestateofasecurityorotherassetthatcannoteasilybesoldorexchangedforcashwithoutasubstantiallossinvalue.Illiquidassetsalsocannotbesoldquicklybecauseofalackofreadyandwillinginvestorso......
  • QUuid
    QUuid #include<QUuid>  PublicTypesenumStringFormat {WithBraces,WithoutBraces,Id128}enumVariant {VarUnknown,NCS,DCE,Microsoft,Reserved}enumVersion {VerUnknown,Time,EmbeddedPOSIX,Name,...,Sha1}PublicFunction......
  • 蓝牙UUID速查
    ServiceDiscoveryServerServiceClassID_UUID='{00001000-0000-1000-8000-00805F9B34FB}'BrowseGroupDescriptorServiceClassID_UUID='{00001001-0000-1000-8000-00805F9B34FB}'PublicBrowseGroupServiceClass_UUID='{00001002-0000-1000-800......