以太坊使用的数据结构与算法-哈希函数-sha256

哈希函数(英语:Hash function)又称散列算法、散列函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。

人话就是不管是什么类型的数据,只要通过这个函数就会变成32个字节长度(256位16进制)的摘要格式
函数 说明
ripemd160(bytes memory) returns (bytes20) 计算输入的RIPEMD-160哈希值
keccak256(bytes memory) returns (bytes32) 计算输入的keccak -256哈希值
sha256(bytes memory) returns (bytes32) 计算输入的SHA-256哈希值
ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address) 利用椭圆曲线签名算法恢复与公钥相关联的地址,出错时返回零。函数参数对应 ECDSA 签名的值。

SHA256 哈希函数

安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的几率很高。

SHA-256(安全哈希算法256位)是一种加密哈希函数,它将数据(例如文档、文件等)接收为输入,并输出一个固定大小(256位)的哈希值。这个哈希值是数据的数字指纹,理论上,不同的数据会产生不同的哈希值。

  • SHA-2
    • SHA-256 :256 bit,message 长度上限 2^64 - 1 bit
    • SHA-384 :384 bit,message 长度上限 2^128 - 1 bit
    • SHA-512 :512 bit,message 长度上限 2^128 -1 bi
SHA函数对比
算法和变体 输出散列值长度
(bits)
中继散列值长度
(bits)
资料区块长度
(bits)
最大输入消息长度
(bits)
循环次数 使用到的运算符 碰撞攻击
(bits)
性能示例[3]
(MiB/s)
MD5(作为参考) 128 128
(4 × 32)
512 无限[4] 64 And, Xor, Rot, Add (mod 232), Or ≤18
(发现碰撞)
335
SHA-0 160 160
(5 × 32)
512 264 − 1 80 And, Xor, Rot, Add (mod 232), Or <34
(发现碰撞)
-
SHA-1 160 160
(5 × 32)
512 264 − 1 80 <63[5]
(发现碰撞[6]
192
SHA-2 SHA-224
SHA-256
224
256
256
(8 × 32)
512 264 − 1 64 And, Xor, Rot, Add (mod 232), Or, Shr 112
128
139
SHA-384
SHA-512
SHA-512/224
SHA-512/256
384
512
224
256
512
(8 × 64)
1024 2128 − 1 80 And, Xor, Rot, Add (mod 264), Or, Shr 192
256
112
128
154
SHA-3 SHA3-224
SHA3-256
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值