通过Java Cryptography Architecture和代码示例,我学习了如何使用Mac类计算Mac:
Mac mac = Mac.getInstance("HmacMD5");
mac.init(<secretKeyHere>);
byte[] macHash = mac.doFinal(<encryptedTextHere>);
但我实际上正在寻找一种使用ISO 9797-1算法3(零售MAC)计算Mac的方法。
有人可以建议我使用Java代码示例吗?
答案 0 :(得分:4)
它是Oracle提供商的not available in any,但是如果您添加Bouncycastle提供商,那么该mac算法将可用,例如
Security.addProvider(new BouncyCastleProvider());
Mac mac = Mac.getInstance("ISO9797ALG3MAC");
注意:Mac算法已经淘汰了几十年。
答案 1 :(得分:1)
我认为您希望查看javacard.security.Signature.getInstance(Signature.ALG_DES_MAC4_ISO9797_1_M2_ALG3)
,然后使用init()
,update()
和sign()
方法生成该特定签名。