Bouncycastle GOST 34.311哈希值不同,测试样例不同



你能帮我做一下GOST 34.311哈希函数的bouncycastle吗?结果与测试向量是不同的。维基说:&;GOST(&;敏捷的棕色狐狸跳过懒惰的狗&;)=77年b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294,

使用Digest Gost 34.11时:

var testString = "The quick brown fox jumps over the lazy dog";
var result = (new GOST3411.Digest()).digest(testString.getBytes());
var resHex2 = new BigInteger(1, result).toString(16);
assertEquals("77b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294", resHex2.toUpperCase());

有:

org.opentest4j.AssertionFailedError: 
Expected :77b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294
Actual   :9004294A361A508C586FE53D1F1B02746765E71B765472786E4770D565830A76

与2012版本:

var testString = "The quick brown fox jumps over the lazy dog";
var result = (new GOST3411.Digest2012_256()).digest(testString.getBytes());
var resHex2 = new BigInteger(1, result).toString(16);
assertEquals("77b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294", resHex2.toUpperCase());

有:

AssertionFailedError: 
Expected :77b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294
Actual   :3E7DEA7F2384B6C5A3D0E24AAA29C05E89DDD762145030EC22C71A6DB8B2C1F4

BouncyCastle是否支持GOST 34.311 - 95?正确的计算方法是什么?

BC使用GOST R 34.11-2012(streetblog)版本的标准

$ rhash -G -m "The quick brown fox jumps over the lazy dog"
3e7dea7f2384b6c5a3d0e24aaa29c05e89ddd762145030ec22c71a6db8b2c1f4  (message)

维基百科示例是已弃用的GOST R 34.11-94版本

$ rhash --gost94 -m "The quick brown fox jumps over the lazy dog"
77b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294  (message)

如果你真的想要旧的,你可能应该要求普通的GOST3411Digest而不是新的GOST3411.Digest2012_256

最新更新