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

    xiaoxiao2023-11-16  148

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

    加密哈希算法拥有的特征

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

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

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