首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >稳健..which散列算法使用?

稳健..which散列算法使用?
EN

Ethereum用户
提问于 2018-06-11 19:44:06
回答 2查看 5.8K关注 0票数 0

我已经尝试过使用许多散列算法,但是输出的稳健性与在线转换器中给出的输出不匹配。

代码语言:javascript
复制
Here is my program:-
pragma solidity ^0.4.18;  
contract C {  
bytes32 public temp;  
function hashingsha3 (uint s)   {  
temp= sha3(s);  
}

    function hashingsha256 (uint s) {
        temp= sha256(s); 
    }
     function kec (uint s)   returns  (bytes32 hash){
        temp= keccak256(s); 
    }

}

这是要转换的在线站点。

我读过不使用NIST批准的当前keccak256的稳健性。

但是,它使用什么来匹配任何在线输出呢?

任何帮助都是有用的。

产出清单:

坚固性

sha3(12)

0xdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7

sha256(12)

0xa82872b96246dac512ddf0515f5da862a92ecebebcb92537b6e3e73199694c45

0xdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7 keccak256(12)

在线转换器

6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918 SHA256(12)

256 512/256 (12) d0d0b58b8cad7a27781cb78b3212d8abce1a4eb4192882e703f7f2e1ea5158da

SHA3-256(12) 1a9a118cb653759c3fcb3bd5060e6f9910c8c27008dd11fe4315f4635c9caa98

SHA3-512 (12) f235c129089233ce3c9c85f1d1554b9cb21952b27e0765bcbcf75d550dd4d2874e546889da5c44db9c066e05e268f4742d672889ff62fb9cb18a3d1b57f00658

Keccak-256 (12) 7f8b6b088b6d74c2852fc86c796dca07b44eed6fb3daf5e6b59f7c364db14528

谢谢你

编辑:

代码语言:javascript
复制
pragma solidity ^0.4.18;  
contract C {  
bytes32 public temp;  
function hashingsha3 (bytes s)   {  
temp= sha3(s);  
}  
function hashingsha256 (bytes s) {  
temp= sha256(s);  
}  
function kec (bytes s)  {  
temp= keccak256(s);  
}  
}

我修改了代码:但现在用于此的输出仍然是:作为字符串传递给0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : sha256(12)

0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 sha3(12)

0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 keccak256(12)

在这里输入图像描述

EN

回答 2

Ethereum用户

发布于 2018-06-11 22:19:46

完全同意马克思先生的观点。我只是补充另一个答案作为一个评论供考虑。

你的问题把注意力转移到一个隐藏的假设上。也就是说,目前为任何给定的客户端找到一个合适的库是可能和方便的,而且永远是这样。

在我看来,公开只读函数以帮助客户端是一个好主意,并保证他们将始终能够通过与今天编译的契约相同的方法计算散列。一些简单的..。

代码语言:javascript
复制
function hashHelper(uint value) public pure returns(bytes32 hash) {
  return keccak256(value);
}

这样做的目的是在内部使用相同的功能,从而避免编译后的字节码与各种形状和大小的客户端之间可能出现的差异。

希望能帮上忙。

票数 3
EN

Ethereum用户

发布于 2018-06-11 20:27:49

问题是,在您的可靠代码中,您正在散列数字,而您正在使用的在线转换器是散列字符串。

如果您执行keccak256("12")而不是keccak256(12),您将得到一个与网站上的哈希匹配的散列。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/50986

复制
相关文章

相似问题

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