我想從mifare classic中讀取扇區8,前提是我已經有鑰匙。從mifare classic中讀取特定扇區
從技術文檔here上authenticateSectorWithKeyA (int sectorIndex, byte[] key)
認證嘗試失敗會導致一個隱含的重新連接到 標記,因此驗證到其他部門都將丟失。
這聽起來像我必須認證所有部門?我是否可能僅通過8部門進行認證並僅從該部門獲取數據?
我想從mifare classic中讀取扇區8,前提是我已經有鑰匙。從mifare classic中讀取特定扇區
從技術文檔here上authenticateSectorWithKeyA (int sectorIndex, byte[] key)
認證嘗試失敗會導致一個隱含的重新連接到 標記,因此驗證到其他部門都將丟失。
這聽起來像我必須認證所有部門?我是否可能僅通過8部門進行認證並僅從該部門獲取數據?
不,您只需驗證您正在閱讀的部門。但是,如果您嘗試認證另一個扇區並失敗,則必須重新認證您已成功連接到的扇區。
是的,首先使用authenticateSectorWithKeyA()進行身份驗證(如果您有密鑰A,則使用密鑰B使用authenticateSectorWithKeyB())。如果這返回false,則認證失敗(您的密鑰不正確)。
當這種成功,您可以使用readBlock()讀取數據(爲方便起見,你可以使用sectorToBlock()從板塊指數轉換成塊索引)
不要擔心失敗身份驗證:它不會影響操作的卡。
你應該給讀者新的連接,然後選擇卡的標籤SN,登錄高於行業0其他部門,如果程序得到的返回碼0 /成功,那麼你就可以讀塊/寫數據(16個字節/塊)。否則它拒絕R/W操作,你需要重新開始。
那麼,我在閱讀之前先對該部門進行驗證?你能告訴我閱讀一個部門的過程嗎?我的程序如何知道它已被認證並允許讀取一個扇區? API自動執行它? – 2012-02-26 09:16:38
我認爲NFC傢伙反應是正確的,他解釋說,這非常好。 – 2012-02-27 08:42:26