基于弹跳城堡的GOST 3411算法

GOST 3411 Algorithm using Bouncy Castle(基于弹跳城堡的GOST 3411算法)

本文介绍了基于弹跳城堡的GOST 3411算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用GOST算法来创建基于键的散列和使用弹跳城堡库的输入。下面的代码生成的散列与通过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,对Hash进行验证并进行身份验证。基本上,加密用于生成身份验证令牌。

很长时间以来一直在提及堆栈溢出,但从未有机会发布任何问题。这是我的第一次:)

谢谢, 苏迪普

推荐答案

GOST3411算法有几个Sbox选项,因此尝试在初始化时使用不同的选项。我在"D-测试"Sbox上有一些运气,它与大多数在线工具匹配,如果不是全部的话。您可以按如下方式初始化不同的SBox:

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

这篇关于基于弹跳城堡的GOST 3411算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:基于弹跳城堡的GOST 3411算法

基础教程推荐