【问题标题】:Make Read Only access for Mifare UltraLight using Android使用 Android 对 Mifare UltraLight 进行只读访问
【发布时间】:2015-02-25 05:54:56
【问题描述】:

我可以成功地将我的数据写入卡上。我希望没有人可以在我的卡片上写字,但他们只能阅读。这有可能实现吗?或者在我的卡上写入数据之前,我可以分配一些密码保护吗?

使用以下方式写入数据:

public void writeTag(Tag tag) {
        MifareUltralight ultralight = MifareUltralight.get(tag);
        String[] mg= getParts(s, 4);

        try {
            ultralight.connect();
            int j=4;
            for (int i = 0; i < mg.length; i++) {

                ultralight.writePage(j, mg[i].getBytes(Charset.forName("US-ASCII")));
                j++;
            }
            Toast.makeText(getApplicationContext(), "Write Done!", Toast.LENGTH_LONG).show()
        } catch (IOException e) {
            Log.e(TAG, "IOException while closing MifareUltralight...", e);
        } finally {
            try {
                ultralight.close();
            } catch (IOException e) {
                Log.e(TAG, "IOException while closing MifareUltralight...", e);
            }
        }
    }

任何帮助将不胜感激!

【问题讨论】:

  • @MorrisonChang 是的,我读过它,但我找不到任何实用的解决方案。
  • 我在向 MIFARE Ultralight NFC 写入数据时遇到问题。您可以在调用 getParts(s, 4) 时为我显示简单代码;方法你如何从editext设置数据字符串请帮助谢谢。
  • getParts(s, 4) 有什么作用??

标签: android nfc mifare lockbits


【解决方案1】:

MIFARE Ultralight 的锁定位位于第 2 页的字节 2-3(请注意,Ultralight C 和 Ultralight 派生类(如 NTAG)可能在其他页面上具有额外的锁定位,请参阅数据表了解它们的位置)。每个锁定位控制内存区域某些页面的锁定状态。为了激活锁定,您必须通过对包含锁定位的页面发出写入命令来将锁定位设置为'1'。因此,对于锁定整个标签的最简单方案,您可以执行以下操作:

    // write all-ones to the lock bits on page 0x02
    byte[] result;
    result = ultralight.transceive(new byte[]{
            (byte)0xA2,  // Command: WRITE
            (byte)0x02,  // Address: page 0x02 (2)
            (byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF  // Data: set bytes 2-3 to all '1'
    });

【讨论】:

  • 我刚刚在我的 writeTag 方法中添加了您的代码,现在我无法在其上写入数据,这很好。但是,如果任何其他用户将锁定位设置为“0”怎么办?是否可以解锁标签?
  • 不,锁定位只能可编程,即您只能将它们设置为1,但不能将它们改回0
  • 哦,是的!我刚刚在defcon.org/images/defcon-21/dc-21-presentations/… 上阅读了此信息,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多