当前位置: 首页 > 知识库问答 >
问题:

身份验证后写入 NTAG216?

曹茂材
2023-03-14

我正在使用这段代码验证我的标签

nfcA.connect();
byte[] authResponse = nfcA.transceive(new byte[]{
                (byte)0x1b,
                pwd[0], pwd[1], pwd[2], pwd[3]
        });
nfcA.close();

我检查了身份验证响应的结果,它等于我的包。身份验证后,我使用 Ndef 类的 writeNdefMessage() 方法编写 NDEF 内容,但我无法编写。

这是我找到验证标签的方法的地方。

这是我的方法:

  • 验证标记(使用该代码段)
  • 如果身份验证响应等于我的包,请继续编写 NDEF 消息

然而,每当我调用< code>writeNdefMessage()时,我都会得到一个< code>java.io.IOException。

共有1个答案

屈昊天
2023-03-14

您无法写入的原因是,在实际写入标记之前,您再次失去身份验证状态。对于大多数设备(尽管存在一些例外!),调用tag.connect()/标记。close()将导致标签被重新激活,从而丢失其身份验证状态。因此,您需要在同一连接中进行身份验证和写入。

由于您不能通过< code>Ndef抽象发送低级命令,这意味着您必须用低级命令完成所有的编写工作。也就是说,你必须自己重新实现特定标签类型的NDEF抽象层(在你的例子中是NFC论坛类型2标签操作规范),并一页一页地编写NDEF消息。

由于NTAG216应被发现为< code>MifareUltralight,因此最简单的方法是使用< code>MifareUltralight连接。那你能吗

>

  • 进行身份验证:

    mfu.transceive(new byte[]{ (byte)0x1b, pwd[0], pwd[1], pwd[2], pwd[3] });
    

    逐页编写标签(您可能需要编写第4页及以后的页面,其中包含包装在带有标签0x03的TLV结构中的NDEF消息,如果您需要对功能容器进行任何更改,您可能还需要编写第3页):

    mfu.write(pageNumber, data)
    

    其中数据是应写入页页码的四字节数据值。

  •  类似资料:
    • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

    • 问题内容: 我正在尝试在Node.js中使用Socket.IO,并试图允许服务器为每个Socket.IO客户端赋予一个身份。由于套接字代码不在http服务器代码的范围内,因此无法轻松访问已发送的请求信息,因此我假设在连接期间需要将其发送出去。什么是最好的方法 1)将有关谁通过Socket.IO连接到服务器的信息 2)验证他们说的是谁(如果正在使事情变得更容易,我目前正在使用Express) 问题答

    • 我试图使用swift代码在网站上找到这里,但响应是html代码与两个错误:“您必须输入密码!”和“您必须输入用户名!”我是NSURLSession的新手,试图更改用于身份验证的字符串,但无法更改响应。下面是我的代码: 这是控制台响应中的内容:

    • 我正在开发一个具有自己的身份验证和授权机制的REST应用程序。我想使用JSON Web Tokens进行身份验证。以下是有效且安全的实现吗? < li >将开发一个REST API来接受用户名和密码并进行认证。要使用的HTTP方法是POST,因此没有缓存。此外,在传输时还会有安全SSL < li >在认证时,将创建两个JWTs访问令牌和刷新令牌。刷新令牌将具有更长的有效期。这两个令牌都将写入coo

    • 我有麻烦让我的数据库连接到WAMP。我做这件事已经有5年了,所以我有点生疏了。我将我的Mysql升级到8.0时遇到了这个错误 我刷新了我的特权,并将插件更改为本机的根。在这一点上我被难倒了。有人能帮帮我吗? 下面是我的数据库类,直到第37行 /** > class Database*/class Database{ 专用$IP、$username、$password、$database; /**

    • 身份验证是将提供的凭据与本地操作系统或身份验证服务器中授权用户信息的数据库中的凭据进行比较的过程。 如果凭据匹配,则完成该过程并授予用户访问权限。 我们将创建一个非常基本的身份验证系统,它将使用Basic HTTP Authentication 。 这是实施访问控制的最简单方法,因为它不需要cookie,会话或其他任何东西。 要使用它,客户端必须发送Authorization标头以及它所做的每个请