问题标签 [mifare]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1252 浏览

android - Mifare DESFire卡上的PICC格式化没用?

我正在使用 IsoDep 和 DESFire 本机命令在 android 上处理 Mifare DESFire 4k 标签。当我向卡发送 PICC 格式命令时,我得到一个 TagLostException,之后使用 Android 上的任何软件都无法检测到该标签。这是预期的行为吗?有没有办法让标签表现得像格式化之前一样?

0 投票
1 回答
1171 浏览

nfc - 检查 MIFARE Ultralight 页面上的访问条件

如何检查页面是否可写在 Mifare Ultralight 标签上?按照 NFC TagInfo NFC Research Lab 示例菜单“访问条件”Page1..Page15 只读/可写(工厂锁定/锁定)/保留/锁定位

0 投票
2 回答
8213 浏览

java - DESFire 身份验证的 DES 发送和接收模式

我正在尝试使用我的 android 应用程序对 DESFire 卡进行身份验证。我使用此链接中的示例来解密从卡中获得的字节。为此,我排除了解密中的填充(在下面注释掉),因为 DESFire 文档指出了这一点。另外,如果我不这样做,解密会返回 7 个字节来输入 8 个字节。以下是我使用的 DES 和 TripleDES 解密函数:

根据 DesFire 文档,我需要两种解密模式,发送和接收。这篇博文对此有一些解释。

但是,DESFire 加密与普通的 DES/CBC 方案有点不同:PCD 在发送数据时使用 DES“发送模式”(在 DES 之前异或),而卡在接收数据时使用 DES“接收模式”(在 DES 之后异或)。但是PCD接收数据时使用普通DES/CBC模式(DES后异或),卡发送数据时使用普通DES发送模式(DES前异或)。

在 Android 方面,我遵循示例和建议:

我得到第一个结果,加密的 randB。但是,第二个“结果”总是“91ae”,表示认证错误。我在这里做错了,将错误的数据发送到卡。

谁能告诉我我必须在代码中更改什么才能在这些模式下工作?在 TripleDES 之前/之后,我应该对数据进行什么异或操作?

不是真正的问题,但我读到 DesFire 卡中的默认“密钥”是 16 个零字节。此外,我需要将 TripleDES 用于 16 个字节的密钥,将 DES 用于 8 个字节的密钥。所以我正在使用并且需要使用 TripleDES,因为我没有更改默认密钥,对吗?

对于那些需要了解CipherBlockChaining的人。

编辑:我发现我需要在 TripleDES 之前和之后进行 XORing,而且我根本不能触及 TripleDES 的内部操作。我会在一段时间内尝试。

删除了内部的 TripleDES 行,只是为第一次看到问题的人说。

0 投票
1 回答
2981 浏览

nfc - 获取 DesFire RFID 唯一 ID

我之前在这里问了一些关于 Mifare RFID 卡的问题,我成功读取了卡片唯一 ID 的十六进制值。

现在我得到了一些我遇到问题的其他卡,我的阅读器对它们做出反应,并且 HID 全键阅读器确实从工作台应用程序中读取了这个 ID 号,我之前发送了以下十六进制序列:FF CA 00 00 00 这允许我从标准 mifare 卡中读取此内容,但是对于 Desfire,这似乎对我不起作用,

有人在这里有任何智能输入吗?

0 投票
2 回答
12607 浏览

c# - 如何更改 Mifare Classic 1k 密钥 A 和密钥 B

我使用的是 Mifare 经典 1k 阅读器,它带有默认密钥 A 和 B,即:

使用 Key A 读写作品。但我想换钥匙。

无论如何要获得该扇区的正确访问位以及格式是什么?

我现在所做的是,

078069我从扇区 1 的第 7 块读取得到的访问位,如下所示:

但是有错误。

访问位不正确还是格式错误?

0 投票
2 回答
3398 浏览

java - 发现 NDEF/活动启动后如何显示 NDEF 消息?

已经阅读了许多与我类似的问题 - 如果我错过了解决问题的方法,我只能道歉,但我真的无法解决这个问题!

我设法让我的 nfc 活动正常工作 - 点击标签启动我的应用程序的正确活动 - 但未显示 ndef 消息,我不知道为什么......

该标签是一个 Mifare Ultralight,带有编码的纯文本消息。(模仿类型:纯/文本)

这是我的代码,谢谢大家的帮助,这个论坛应该有一个“捐赠啤酒”按钮!

0 投票
2 回答
7992 浏览

c# - 获取 Mifare 卡类型

我编写了一个简单的应用程序 (C#),以便通过我的智能卡读卡器在我的 Mifare 卡上执行一些 I/O 操作(显然,我使用了一些 Win API 包装)。

我得到的关于 mifare 的唯一信息是“Mifare 1k”),但是有什么方法可以知道我的 mifare 卡的确切类型吗?(例如可以是 Classic、DESFire、Plus、Ultralight..)?

或者我的应用返回的 Mifare 1k 描述可能意味着它只是一个经典的 Mifare?

0 投票
0 回答
340 浏览

c# - Hid Global.Multi-ISO Mifare 阅读器二进制协议

谁能解释一下 HID-MULTI-ISO Mifare 阅读器的二进制协议是如何工作的?

我正在向 MIFARE 阅读器(HID HF 多 ISO 阅读器)发送帧,但它失败了。根据数据表,框架如下所示:

其中02是 STX,01是设备 ID,78是作为命令的数据,reset另一个78是 BCC(块校验字符),它是 01,01 和 78 异或的结果。最后一个03是 ETX。

当我发送帧时,它会导致错误,? ? ?这意味着命令错误。

我熟悉 ASCII 协议,它运行良好,但我想使用涉及帧的二进制协议进行阅读器配置。

任何答案表示赞赏..

0 投票
4 回答
3597 浏览

c# - 我如何在 desfire ev1 中进行本机身份验证

我想在本机模式下使用 desfire 卡进行身份验证。这是我目前的步骤:

  • 我选择主应用程序(AID = 0×00 0×00 0×00)
  • 我收到卡的响应(“挑战”,randB)
  • 然后,在第二步中,我生成一个响应(randA);我将 8 字节 rand A 与 8 字节解密和旋转 rand B 连接起来
  • 我对其进行加密,将其发送回卡。

我收到了91 ae答案,我不知道为什么。以下是消息序列:

  • 到卡:90 0A 00 00 01 00 00
  • 从卡 5B 57 69 C7 CE 4B 16 7B 91 AF
  • 加密 RandB = 5B 57 69 C7 CE 4B 16 7B
  • 破译 RandB' = 17 8D 23 57 10 C9 32 D5
  • 一字节 lshitf RandB' = 8D 23 57 10 C9 32 D5 17
  • 生成的兰德 A = 43 9D 17 8E 9A 5F BA 70
  • 连接兰德 A 与兰德 B'' = 43 9D 17 8E 9A 5F BA 70 8D 23 57 10 C9 32 D5 17
  • 加密兰德 A + 兰德 B'' = 9E ED DC 4F BC E7 BE BD 09 02 CF 99 F7 40 34 7B
  • 至卡:90 AF 00 00 10 43 9D 17 8E 9A 5F BA 70 8D 23 57 10 C9 32 D5 17 00
  • 来自卡片:91 AE

拜托,如果你发现有什么不对的地方,你能指出来吗?我可能会遇到哪些问题?

0 投票
1 回答
612 浏览

mifare - 使用密钥 B 搜索 mifare tag 1K

我可以用键 A 读写,并为扇区预告片设置此代码:

我可以用钥匙 A 阅读,但不能用钥匙 B 阅读并显示此消息: