《区块链基础知识25讲》-第十讲-哈希算法
  otE9mA8p5Pjc 2023年11月02日 91 0


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

加密哈希算法拥有的特征

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

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

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
otE9mA8p5Pjc