Java/C实现的ANSI X9.19(零售MAC)



有人有Java或C语言的ANSI X9.19(又名零售MAC)计算代码的工作版本吗?我尝试了所有在SO上找到的,但似乎无法得到正确的结果。我的输入是:

数据:

31303030313232303136303432353135333735383030303032363030303030343835383038343837323031353130323330303030303031303030303030303030303031
关键:

B6E58778DFA2F0A58DF0C6D792734720

预期MAC:

 a6a2c109........

Bouncy Castle提供程序包含"DESISO9797MAC"作为Mac的算法字符串。

结果:

a6a2c109be35bae7

请注意服务的toString为:

BC: Mac.DESWITHISO9797 -> org.bouncycastle.jcajce.provider.symmetric.DES$DES9797Alg3
  aliases: [DESISO9797MAC]

类名的最后一部分DES9797Alg3指向ISO 9797 MAC算法3,该算法在国际标准文档中指定了RetailMAC。

最新更新