使用Bouncy Castle的GOST 3411算法

时间:2017-07-31 05:49:42

标签: java encryption bouncycastle hmac digest

使用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很长一段时间但从来没有机会发布任何问题。这是我的第一个:)

谢谢, 萨迪普

1 个答案:

答案 0 :(得分:0)

GOST3411算法有几个SBox选项,所以尝试在初始化时使用不同的。我和#34; D-Test" SBox,它与大多数(如果不是全部)在线工具相匹配。您可以像这样初始化不同的SBox:

HMac mac = new HMac(new GOST3411Digest(GOST28147Engine.getSBox("D-Test")));