gpt4 book ai didi

android - 如何在 Android 中检测来自 NFC 标签的 UID 是否是随机的?

转载 作者:行者123 更新时间:2023-11-29 18:12:47 27 4
gpt4 key购买 nike

我正在开发一个 Android 项目,该项目依赖于已发现的 NFC 标签的唯一 UID 来处理标签。我使用以下代码提取此 UID:

byte[] extraID = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);

但是,出于安全目的,对于某些技术,此 UID 是随机生成的。有人知道我如何检测到这是随机生成的 UID 吗?是否设置了某种标志?

注意:一个简单的解决方案是读取标签两次并比较 UID。但是,我想避免这种情况。

最佳答案

对于 NfcA(以及 IsoDep 和/或 MifareClassic 与 NfcA 组合),如果 ID 恰好 4 个字节长并且以 0x08 开头,则 ID 是随机的。有些卡(MIFARE DESFire)可以配置一个长度为 4 字节、以 0x80 开头的随机 ID。

对于 NfcB(以及与 NfcB 结合的 IsoDep),没有为随机 ID 保留的预定 ID 范围。事实上,任何 NfcB ID 都可以是随机的。 NfcB ID其实叫做PUPI,代表“Pseudo Unique PICC Identifier”。所以这个名字已经表明不保证唯一性。

对于 NfcF 和 NfcV,ID 一般不会是随机的。

只有当您从 RF 场中移除标签时,才能读取标签两次以检测随机 ID。只要标签保持由 Rf 场供电,它通常会保持相同的随机 ID。

关于android - 如何在 Android 中检测来自 NFC 标签的 UID 是否是随机的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com