如何利用NFC手机进行门禁卡的制作?

如何利用NFC手机进行门禁卡的制作?,第1张

vivo手机可参考以下复制实体门禁卡的方法:

1、进入手机设置—其他网络与连接/更多设置—NFC—开启NFC和NFC读卡的开关,然后进入“触碰付款”,设置默认付款方式为“vivo钱包”;

2、进入vivo钱包--门禁卡--录入实体门禁卡;

3、根据提示将非加密实体门禁卡紧贴手机NFC感应区进行读卡;

4、等待读卡添加完成即可。

这是开通线上门禁卡的方法:

1、确认小区门禁卡是亲邻科技、邻里邻外、祥云门的门禁商提供的门禁(可通过门卡添加页面查询支持的小区信息);

2、确认已在小区物业处预留手机号等物业要求的业主信息;

3、首先进入手机设置--其他网络与连接--NFC--开启NFC开关与NFC读卡开关,同时设置付款方式为vivo钱包;

4、选择需要开通的小区并输入手机号码验证权限;

5、验证通过后,进入写卡环节并完成开通。

对以上方式设置有疑惑,或核实某款机型是否支持NFC功能,可进入vivo官网--我的--在线客服--输入人工,咨询在线客服反馈。

目前,许多便携设备都具有全功能NFC,如手机、手环、手表。NFC具体门禁卡功能,如果能把所需的门禁卡、电梯卡模拟到这些便携设备中,会大大方便我们的生活,但该功能仅支持特定的非加密卡的模拟。而现实中,大多数门禁卡、电梯卡都是加密卡,直接模拟并不能成功。这就需要先对加密卡进行解密处理,数据修改,先模拟仅含卡号的解密卡,然后再写入加密内容,从而达到模拟加密卡的目的。

说明:

需要的设备:

1.PN532开发板及相关软件,东西很便宜,好像30+元,软件找店家要就行。

2.CUID卡,这种可以反复擦写,和PN532一起买就可以了。

正文开始(以小米手环6NFC版为例):

一、破解门禁卡

1. 电脑接入pn532开发板(注意usb供电)。

2. 将待破解的门禁卡放到pn532开发板上,打开工具”上位机”:先点击” 发现NFC设备”,再点” 读整卡”。耐心等待读取完成(如长时间无法读取,可反复插拔设备或变换卡片位置或更换卡片)。

3. 读取成功,即破解完成,点击窗口区左上角三角符号,保存读取的文件(.dump格式,称之为文件A)。

二、解密加密文件

4. 打开工具“DumpTxt互转”,将文件A拖入该工具,d出信息,点击确定,将由文件A转换的文件(.txt格式,称之为文件a)保存。

5. 修改文件a:用文本编辑器打开文件a,除每个扇区的最后一行和0扇区第一行外,全部修改为00;每个扇区的最后一行包含KEY A、KEY B和中间3个位的“07 80 69”全部修改为FF;0扇区的第一行保留不作修改(该行为卡号和厂商信息,厂商信息在最终写入时会不被写入,但不影响使用)。另存修改后的文件(.txt文件,称之为文件b)。

6. 将文件b拖入工具“DumpTxt互转”, d出信息,点击确定,将由文件b转换的文件(.dump格式,称之为文件B)保存。

三、模拟解密文件

7. 拿一张cuid卡(可反复擦写),放到pn532开发板上,先点击” 发现NFC设备”,再点” 读整卡”,然后点“写整卡”,等待写入完成。

8. 打开手机上的小米运动app,找到小米手环6NFC,点模拟门卡,选模拟实体卡,将cuid卡紧贴小米手环6NFC,按小米运动app上提示的步骤 *** 作完成。此步骤是将带有卡头的非加密卡模拟进小米手环6NFC。

四、写入加密文件

9. 将小米手环6NFC放到pn532开发板上,先点击” 发现NFC设备”,再点” 读整卡”,最后点击“写整卡”,d出打开窗口,选择文件A,确定,写入成功。至此门禁卡写入小米手环6NFC成功。

Android读写NFC的步骤:\x0d\x0a1.首先要在AndroidManifest.xml中声明如下配置信息:\x0d\x0a使用元素允许设备访问NFC硬件:\x0d\x0a \x0d\x0a\x0d\x0a2.使用元素设置最小SDK版本:\x0d\x0a \x0d\x0a\x0d\x0a3.NFC TAG的发布系统:\x0d\x0a当android设备扫描到一个NFC标签时,会自动寻找最适合的Activity来处理这个TAG,如果有多个Activity满足条件的话,会让用户来选择到底使用哪一个Activity来处理,可以理解为就是简单的事件响应与事件处理。\x0d\x0a\x0d\x0a4.如何让一个Activity监听 ”当扫描到NFC标签时” 的这一个事件呢?使用intent filter。\x0d\x0a可以理解为当检测到一个NFC标签时,系统自动创建一个相关的Intent对象,含有响应intent filter的Activity将处理这个Intent。\x0d\x0a其中,intent filter声明如下:\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a5.读取NFC标签中NDEF格式的文本信息:\x0d\x0a先判断手机支不支持NFC功能,若支持,是否已设置开启状态。\x0d\x0a@Override \x0d\x0aprotected void onCreate(Bundle savedInstanceState) { \x0d\x0asuper.onCreate(savedInstanceState) \x0d\x0asetContentView(R.layout.activity_write) \x0d\x0anfcTView=(TextView)findViewById(R.id.info_tv) \x0d\x0anfcAdapter = NfcAdapter.getDefaultAdapter(this) \x0d\x0aif (nfcAdapter == null) { \x0d\x0anfcTView.setText("设备不支持NFC!") \x0d\x0afinish() \x0d\x0areturn \x0d\x0a} \x0d\x0aif (nfcAdapter!=null&&!nfcAdapter.isEnabled()) { \x0d\x0anfcTView.setText("请在系统设置中先启用NFC功能!") \x0d\x0afinish() \x0d\x0areturn \x0d\x0a} \x0d\x0a} \x0d\x0a\x0d\x0a6.读取NFC卡的内容\x0d\x0aprivate boolean readFromTag(Intent intent){ \x0d\x0aParcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES) \x0d\x0aNdefMessage mNdefMsg = (NdefMessage)rawArray[0] \x0d\x0aNdefRecord mNdefRecord = mNdefMsg.getRecords()[0] \x0d\x0atry { \x0d\x0aif(mNdefRecord != null){ \x0d\x0areadResult = new String(mNdefRecord.getPayload(),"UTF-8") \x0d\x0areturn true \x0d\x0a } \x0d\x0a} \x0d\x0acatch (UnsupportedEncodingException e) { \x0d\x0a e.printStackTrace() \x0d\x0a} \x0d\x0areturn false \x0d\x0a }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11226276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存