2016-05-19 2 views
1

Je souhaite que les cartes MIFARE Classic 1k soient lues uniquement après avoir écrit des données initiales. Je suppose que je dois changer les clés A et B à quelque chose de personnalisé après avoir écrit des données sur la nouvelle carte. Mais comment je fais ça? Ces touches sont situées dans le même bloc que les bits d'accès, donc je ne peux pas utiliser la méthode MifareClassic pour écrire un bloc complet:Rendre MIFARE Classic 1K en lecture seule via une application Android

public void writeBlock(int blockIndex, byte[] data) throws IOException 

car il réécrire les bits également d'accès.

Répondre

1

Bien sûr, vous devez utiliser la méthode MifareClassic.writeBlock(). Étant donné que MIFARE Classic ne prend en charge que l'écriture de blocs complets, vous devez mettre à jour le bloc de la totalité du secteur. Comme MIFARE Classic n'a pas de mode de lecture libre (lire sans authentification préalable), vous devez définir à la fois une touche de lecture (vous utiliserez généralement la touche A pour cela) et les bits d'accès (qui configurent la clé A comme clé en lecture seule).

Vous trouverez de plus amples informations sur les valeurs de condition d'accès possibles et le format de bloc ici: