寻找使用 ISO 9797-1 算法 3(零售 MAC)计算 Mac 的方法
looking for a way to calculate Mac using the ISO 9797-1 Algorithm 3(Retail MAC)
通过 Java 密码体系结构和代码示例,我学会了如何使用 Mac class 计算 Mac:
Mac mac = Mac.getInstance("HmacMD5");
mac.init(<secretKeyHere>);
byte[] macHash = mac.doFinal(<encryptedTextHere>);
但我实际上正在寻找一种使用 ISO 9797-1 算法 3(零售 MAC)计算 Mac 的方法。
有人可以向我推荐 Java 中的代码示例吗?
我相信您想查看 javacard.security.Signature.getInstance(Signature.ALG_DES_MAC4_ISO9797_1_M2_ALG3)
,然后使用 init()
、update()
和 sign()
方法生成该特定签名。
它是 not available in any 的 Oracle 提供程序,但是如果您添加 Bouncycastle 提供程序,那么 mac 算法将可用,例如
Security.addProvider(new BouncyCastleProvider());
Mac mac = Mac.getInstance("ISO9797ALG3MAC");
注意:Mac 算法已经过时了几十年。
通过 Java 密码体系结构和代码示例,我学会了如何使用 Mac class 计算 Mac:
Mac mac = Mac.getInstance("HmacMD5");
mac.init(<secretKeyHere>);
byte[] macHash = mac.doFinal(<encryptedTextHere>);
但我实际上正在寻找一种使用 ISO 9797-1 算法 3(零售 MAC)计算 Mac 的方法。
有人可以向我推荐 Java 中的代码示例吗?
我相信您想查看 javacard.security.Signature.getInstance(Signature.ALG_DES_MAC4_ISO9797_1_M2_ALG3)
,然后使用 init()
、update()
和 sign()
方法生成该特定签名。
它是 not available in any 的 Oracle 提供程序,但是如果您添加 Bouncycastle 提供程序,那么 mac 算法将可用,例如
Security.addProvider(new BouncyCastleProvider());
Mac mac = Mac.getInstance("ISO9797ALG3MAC");
注意:Mac 算法已经过时了几十年。