寻找使用ISO 9797-1算法3(零售MAC)计算Mac的方法

时间:2017-03-03 17:36:17

标签: java encryption cryptography hmac 3des

通过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代码示例吗?

2 个答案:

答案 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()方法生成该特定签名。