DESFire-Authentifizierungsentschlüsselung

Ich arbeite derzeit mit kontaktlosen DESFire EV1-Karten. Ich versuche, ein DES / CBC-verschlüsseltes random_b mit masterkey zu entschlüsseln: "00 00 00 00 00 00 00 00 00 00 00".

Ich benutze diesen Code:

byte[] encipheredCodeRandomB = { (byte)0xEA ,(byte)0x18 ,(byte)0xDE ,(byte)0xFF
     ,(byte)0x52 ,(byte)0x0E,(byte)0xCD, (byte) 90};
byte[] masterKeyBytes = "0000000000000000".getBytes();
byte[] ivBytes = "00000000".getBytes();

DESKeySpec desKeySpec = new DESKeySpec(masterKeyBytes);  
SecretKeyFactory desKeyFact = SecretKeyFactory.getInstance("DES");
SecretKey s = desKeyFact.generateSecret(desKeySpec);
aliceCipher = Cipher.getInstance("DES/CBC/NoPadding");
aliceCipher.init(Cipher.DECRYPT_MODE, s, new IvParameterSpec(ivBytes));

byte[] decipheredCodeRandomB = aliceCipher.doFinal(encipheredCodeRandomB);

aber dieser Code entschlüsselt nicht richtig. Ich erhalte das ungültige Ergebnis: "4B 9D 5A 91 AE 93 F8 ED". Das richtige ist: "A4 2F 3E 84 2C 5A 29 68".

Antworten auf die Frage(1)

Ihre Antwort auf die Frage