[英]Mifare Ultralight C Lock
我正在嘗試鎖定Mifare Ultralight C標簽。 我想將NDEF頁面0x04設置為0x27為只讀。 我認為這可以通過Ndef.makeReadonly()
來實現。
另外,我想將頁面0x29設置為0x2F以進行密碼保護(用於讀取和寫入),因此只有在身份驗證成功后才能訪問它們。 我很難理解需要在鎖定字節(頁面0x28,字節0,1)中設置哪些字節,以及是否需要設置扇區0x2A和0x2B。
不一定, Ndef.makeReadonly()
可能只在功能容器中設置只讀標志(根據NFC論壇類型2標簽操作規范)。
如果要確保設置實際鎖定位,則應將標記連接為NfcA
或MifareUltralight
標記技術,並為鎖定位發出寫入命令。
NfcA nfcA = NfcA.get(tag);
nfcA.connect();
byte[] result1 = nfcA.transceive(new byte[] {
(byte)0xA2, /* CMD = WRITE */
(byte)0x02, /* PAGE = 2 */
(byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF /* DATA = lock pages 3..15 */
});
byte[] result2 = nfcA.transceive(new byte[] {
(byte)0xA2, /* CMD = WRITE */
(byte)0x28, /* PAGE = 40 */
(byte)0x0F, (byte)0x00, (byte)0x00, (byte)0x00 /* DATA = lock pages 16..27 */
});
另請參閱Mifare Ultralight:鎖定鎖定位編碼的特定頁面 。
使用我上面顯示的write命令,您首先要將您的身份驗證密鑰寫入44..47頁。 然后,您將AUTH1(第43頁)寫為全零。 最后,您將AUTH0(第42頁)寫為0x29 0x00 0x00 0x00
以要求對頁面41及更高版本進行身份驗證。 實際上我建議鎖定40頁以上的頁面,以便沒有人可以為這些頁面設置鎖定位。 或者,您可以設置塊鎖定位(即將0x1F 0x0F 0x00 0x00
寫入第40頁),以便無法更改未鎖定頁面的鎖定位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.