《区块链基础知识25讲》-第十讲-哈希算法

无论输入数据的大小及类型如何,均可以将输入数据转换成固定长度的输出

加密哈希算法拥有的特征

  • 能为任意类型的数据快速创建哈希值
  • 确定性:相同输入必定产生相同哈希值,换句话说,输入不同则得到的哈希值绝对不同
  • 伪随机:输入数据被改变则返回的哈希值的变化是不可预测的,即不可能根据输入预测哈希值
  • 单向函数:不可逆,不能通过哈希值恢复原始的输入数据
  • 防碰撞:同数据块产生相同的哈希值的机会很小,则哈希算法是防碰撞的。

区块链需要一次处理许多交易数据,还要对同一批交易数据产生一个哈希值,可以将以下模式运用到哈希值的生成:

  • 独立哈希
    将哈希算法独立用在每一个数据块上
  • 重复哈希
    将哈希值输入哈希函数来获得哈希值的哈希值
  • 组合哈希
    一次为多个数据块生成单个哈希值
    只能在单个数据块较小时使用
    将所有的独立的数据块组合成一个总数据块,计算哈希值
    单个数据片段的哈希值不可用,因为只有组合后才会被交给哈希函数
  • 顺序哈希
    随新数据的产生,将现有哈希值与新数据组合,将其再次输入哈希算法,以获得更新数据后的哈希值
    适用于希望随时间推移,保持一个独立的哈希值,在任意固定时间均存在一个哈希值,通过该值可以追溯与其对应的新数据
  • 分层哈希
    将分层哈希应用于一对哈希值可以形成一个哈希值组成的树状结构,其顶部将产生一个新的哈希值。
    效率更高
    组合的总是两个固定大小的哈希值
    在每个步骤中只组合两个哈希值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值