hash - Bouncycastle GOST 34.311 哈希与测试示例不同
问题描述
请您帮忙解决哈希函数GOST 34.311的bouncycastle 问题。不知何故,结果与测试向量不同。Wiki 说:“ GOST(“快速棕色狐狸跳过懒狗”)= 77b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294
使用 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
( streebog ) 版本
$ 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
新的。
推荐阅读
- php - 我试图通过 PHP 创建一个表(“cats”)但无法访问数据库
- android - 在cardview中使用意图时没有响应
- angular - Angular 9 动画 - 如何在不将组件包装在新 div 中的情况下为组件的单个销毁设置动画?
- python-3.x - 尝试制作 Discord bot,收到以下错误:RuntimeError: SSL is not supported
- mysql - 无法打开表设置窗口并出现错误“为对象获取 DDL 时出错,未选择数据库”
- sql - SQL 更改创建以更改语法错误
- javascript - 带有json的后请求,如何访问正文?
- php - 来自嵌套数组的 PHP 回显数据(foreach 循环)
- python - 通过Python转义html中的单引号?
- node.js - 如何在 Node JS AWS Lambda 中获取镶木地板文件架构?