浏览Java加密体系结构和代码示例,我已经学会了如何使用Mac类计算Mac:
Mac mac = Mac.getInstance("HmacMD5");
mac.init(<secretKeyHere>);
byte[] macHash = mac.doFinal(<encryptedTextHere>);
但我实际上正在寻找一种使用ISO 9797-1算法3(零售MAC)计算MAC的方法。
有人可以在Java中建议我一个代码示例?
它在任何甲骨文提供商中都不可用,但是,如果添加了Bouncycastle提供商,那么Mac算法将可用,例如。
Security.addProvider(new BouncyCastleProvider());
Mac mac = Mac.getInstance("ISO9797ALG3MAC");
注意:Mac算法已经过时了数十年。
我相信您想查看javacard.security.Signature.getInstance(Signature.ALG_DES_MAC4_ISO9797_1_M2_ALG3)
,然后使用init()
,update()
和sign()
方法来生成该特定签名。