1
我目前正在使用DESFire EV1非接觸卡。 我想用masterkey解密DES/CBC編碼的random_b:「00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00」。DESFire身份驗證解碼器
我使用這個代碼:
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);
但是這個代碼犯規正確破譯。我得到這個無效的結果:「4B 9D 5A 91 AE 93 F8 ED」正確的是:「A4 2F 3E 84 2C 5A 29 68」
非常感謝你!這是問題! – 2012-07-08 19:30:10
它的工作原理!我得到了相同的結果,現在我無法使用desfire卡進行身份驗證! – 2012-07-08 19:31:43
@IonutBogdan:嗯......當我嘗試使用「有效」鍵/ IV代碼時,我得到第一個字節爲136,即0x88,而不是0xA4。不過,如果你很開心:) – 2012-07-08 19:33:08