Mifare Classic 1k写密钥

时间:2012-09-24 09:06:50

标签: android nfc mifare

我正在尝试制作一个Android应用程序来编写NFC标签。为了看看如何做到这一点,我已经下载了一个例子。但是,该示例不起作用。它说无法进行身份验证。这只能意味着它对这种类型的卡使用了错误的密钥。奇怪的是,即使KEY_DEFAULTKEY_MIFARE_APPLICATION_DIRECTORY密钥也不能在我的空白卡上工作。 Mifare是否以任何方式改变了密钥?

编辑:这是我的代码。

            /* Authenticate the MAD Sector, sector 1, with key A */
        succes = mClassic.authenticateSectorWithKeyA(
                1, key);
        if (succes) {
            /* Authentication succeeded */

            /*
             * This will read a 16-byte block in this sector
             * It is an I/O operation and will block until complete.
             * It must not be called from the main application thread.
             **/
            b.append(mClassic.readBlock(1), 0, 16);
            b.append(mClassic.readBlock(2), 0, 16);
            b.append(mClassic.readBlock(3), 0, 16);
            data = b.toByteArray();
        }
        /* Authentication failed */
        else
            sb.append("Authentication failed");
        mClassic.close();

    }

我已经尝试使用以下键:

MifareClassic.KEY_DEFAULT
MifareClassic.KEY_MIFARE_APPLICATION_DIRECTORY
00 00 00 00 00 00
ff ff ff ff ff ff

一切都无济于事..

2 个答案:

答案 0 :(得分:2)

我不熟悉Ubiqconn平板电脑。我要做的第一件事是检查设备中的NFC实现是否实际支持MIFARE。在您的主要活动onCreate()添加:

public void onCreate(Bundle bundle) {
  ...
  if (!getPackageManager().hasSystemFeature("com.nxp.mifare")) {
    Toast.makeText(this, "No MIFARE support!", Toast.LENGTH_LONG).show();
  }
}

答案 1 :(得分:1)

您的应用中存在错误,或者密钥已自定义。使用NFC TagInfo之类的应用来检查您是否可以使用默认密钥读取/写入卡。如果它不起作用,请联系向您出售卡片的人,并询问他们的钥匙是什么。