gpt4 book ai didi

android - 在 Mifare Ultralight C 上限制写入时读取

转载 作者:行者123 更新时间:2023-11-30 02:39:20 27 4
gpt4 key购买 nike

我刚收到 Mifare Ultralight C。我可以使用 Android 手机 (Galaxy Ace 3) 轻松读取它的值。

0 hex: 04 9a 6f 79
1 hex: 52 02 3a 80
2 hex: ea 48 00 00
3 hex: 00 00 00 00
4 hex: 02 00 00 10
5 hex: 00 06 01 10
6 hex: 11 ff 00 00
7 hex: 00 00 00 00
8 hex: 00 00 00 00
9 hex: 00 00 00 00
10 hex: 00 00 00 00
11 hex: 00 00 00 00
12 hex: 00 00 00 00
13 hex: 00 00 00 00
14 hex: 00 00 00 00
15 hex: 00 00 00 00
16 hex: 00 00 00 00
17 hex: 00 00 00 00
18 hex: 00 00 00 00
19 hex: 00 00 00 00
20 hex: 00 00 00 00
21 hex: 00 00 00 00
22 hex: 00 00 00 00
23 hex: 00 00 00 00
24 hex: 00 00 00 00
25 hex: 00 00 00 00
26 hex: 00 00 00 00
27 hex: 00 00 00 00
28 hex: 00 00 00 00
29 hex: 00 00 00 00
30 hex: 00 00 00 00
31 hex: 00 00 00 00
32 hex: 00 00 00 00
33 hex: 00 00 00 00
34 hex: 00 00 00 00
35 hex: 00 00 00 00
36 hex: 00 00 00 00
37 hex: 00 00 00 00
38 hex: 00 00 00 00
39 hex: 00 00 00 00
40 hex: 00 00 00 00
41 hex: 00 00 00 00
42 hex: 30 00 00 00
43 hex: 00 00 00 00

然后我将第 43 页中的值更改为 0x80,将第 42 页中的值更改为 0x2A。现在,当我以这种方式读取值时:

Log.e(LOG, "read");
for(int j = 0; j <= 40; j += 4){
byte[] resp = mifare.readPages(j);
logResponse(j, resp);


private void logResponse(int j, byte[] resp){
for(int i = 0; i < resp.length; i += 4){
Log.e(LOG, String.valueOf(j + i / 4) + " hex: "
+ String.format("%02x ", resp[i])
+ String.format("%02x ", resp[i + 1])
+ String.format("%02x ", resp[i + 2])
+ String.format("%02x", resp[i + 3]));
}
}

我从第 0 页和第 1 页获取值,而不是从第 42 和 43 页获取值。
接下来的事情是,当我发送消息 0x1A00 以进行身份​​验证时,我得到了 transceive failed
有没有办法检查它是否真的是 Mifare Ultralight C 或其他标签?还是我错了,第 43 页中的值 0x80 仅限制写访问?

最佳答案

您从标签中读取的内容看起来确实像是 MIFARE Ultralight C 标签(特别是您能够读取第 42 和 43 页)。

  • 将 AUTH0 设置为 42 (0x2A) 后出现的翻转是预期行为。 IE。当您保护从第 X 页开始的标签内存时,READ 命令将在第 X - 1 页后翻转。

  • 将 AUTH1 设置为 0x80 不会达到您的预期。只有 AUTH1 中的最低位是相关的,因此您通常会将 AUTH1 设置为 0x00(限制读写)或 0x01(仅限制写入)。

  • 我不太清楚为什么身份验证命令会失败。

    byte[] cmd = { (byte)0x1A, (byte)0x00 };
    byte[] result = mifare.transceive(cmd);

    通常,如果此命令返回 0xAF 以外的任何内容(或抛出异常),则清楚地表明标签不是 MIFARE Ultralight C。

关于android - 在 Mifare Ultralight C 上限制写入时读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25994737/

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