gpt4 book ai didi

android - Mifare Ultralight C 锁

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

我正在尝试锁定 Mifare Ultralight C 标签。我想将 NDEF 页面 0x04 到 0x27 设置为只读。我认为这可以通过 Ndef.makeReadonly() 实现。

此外,我想将页面 0x29 到 0x2F 设置为密码保护(用于读取和写入),以便只有在身份验证成功后才能访问它们。我很难理解哪些字节需要在锁定字节(页面 0x28,字节 0、1)中设置,以及是否还需要设置扇区 0x2A 和 0x2B。

最佳答案

我正在尝试将 NDEF 页面 0x04 到 0x27 设置为只读。我认为这可以通过 Ndef.makeReadonly() 来实现。

不一定,Ndef.makeReadonly() 可能只在功能容器中设置只读标志(根据 NFC 论坛类型 2 标签操作规范)。

如果您想确保设置实际的锁定位,您可以将标签连接为 NfcAMifareUltralight 标签技术,并为锁定位发出写入命令相反。

NfcA nfcA = NfcA.get(tag);
nfcA.connect();

byte[] result1 = nfcA.transceive(new byte[] {
(byte)0xA2, /* CMD = WRITE */
(byte)0x02, /* PAGE = 2 */
(byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF /* DATA = lock pages 3..15 */
});

byte[] result2 = nfcA.transceive(new byte[] {
(byte)0xA2, /* CMD = WRITE */
(byte)0x28, /* PAGE = 40 */
(byte)0x0F, (byte)0x00, (byte)0x00, (byte)0x00 /* DATA = lock pages 16..27 */
});

另见 Mifare Ultralight: lock specific pages用于锁位的编码。

我想将页面 0x29 到 0x2F 设置为密码保护(用于读取和写入),以便只有在身份验证成功后才能访问它们。

使用上面显示的写入命令,您首先将身份验证 key 写入第 44..47 页。然后,您会将 AUTH1(第 43 页)写为全零。最后,您可以将 AUTH0(第 42 页)编写为 0x29 0x00 0x00 0x00 以要求对第 41 页及以后的页面进行身份验证。实际上我建议锁定第 40 页及以上的页面,这样就没有人可以为这些页面设置锁定位。或者,您可以设置 block 锁定位(即将 0x1F 0x0F 0x00 0x00 写入第 40 页),以便无法更改未锁定页面的锁定位。

关于android - Mifare Ultralight C 锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26407591/

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