你能帮我做一下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
。