首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外的keccak输出

意外的keccak输出
EN

Stack Overflow用户
提问于 2013-03-07 11:00:51
回答 1查看 1.3K关注 0票数 0

我正在试验java的各种Keccak实现。到目前为止,This implementation是最有前途的,但是我得到了奇怪的结果。测试用例定义为here (尽管根据测试向量,我直接使用十六进制字符串)。当前(和正确的)测试向量被定义为绿色的here (为了方便起见,我提供了链接,以避免任何人不得不从网站下载官方测试向量压缩文件)。

首先,我不理解测试向量中'len‘和'msg’字段之间的相关性。‘'Len’应该是'msg‘的长度,以位为单位。例如,'len‘= 5,'msg’= "48“(十六进制字符串),我认为2个十六进制数字=1个字节,即=8位。我遗漏了什么?

我只得到了以下长度的输入的正确摘要(根据测试向量):16、24、40、56、64、72、112和128 (其中length对应于测试向量中的'len‘字段,输入是'msg')。但是,我得到的长度值: 32、48、80、88、96、104与测试向量不匹配。有没有人能有根据地猜测为什么会发生这种情况?当然,如果有人能推荐一种不同的Java实现,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-07-09 19:07:35

请看这里的示例:LINK

或者只需将此方法添加到"Keccak“类:

代码语言:javascript
复制
/**
 * @param string original string to get kekkan hash from it
 * @return hash or null
 */
public static String generateHash(String string) {
    Keccak keccak = new Keccak();
    String hex;
    try {
        hex = keccak.getHexStringByByteArray(string.getBytes("UTF-8"));
    } catch (UnsupportedEncodingException e) {
        return null;
    }
    // 576,64 is values for sha-512
    return keccak.getHash(hex, 576, 64);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15262280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档