使用GOST算法使用Bouncy castle libs创建基于键和输入的哈希。下面的代码会生成与通过http://beautifytools.com/hmac-generator.php等在线工具生成的哈希不匹配的哈希
HMac gMac= new HMac(new GOST3411Digest());
byte[] key = "keyphrase".getBytes();
byte[] input = "macinput".getBytes();
gMac.init(new KeyParameter(key));
gMac.update(input, 0, input.length);
byte[] mac = new byte[gMac.getMacSize()];
gMac.doFinal(mac, 0);
BigInteger in = new BigInteger(1, mac);
System.out.println(in.toString(16));
当这工作时,需要在Mulesoft内部使用调用API来验证哈希并提供身份验证。基本上,加密用于生成身份验证令牌。
已经提到stackoverflow很长一段时间但从来没有机会发布任何问题。这是我的第一个:)
谢谢, 萨迪普
答案 0 :(得分:0)
GOST3411算法有几个SBox选项,所以尝试在初始化时使用不同的。我和#34; D-Test" SBox,它与大多数(如果不是全部)在线工具相匹配。您可以像这样初始化不同的SBox:
HMac mac = new HMac(new GOST3411Digest(GOST28147Engine.getSBox("D-Test")));