概述

哈希函数是一种数学函数,可根据输入的内容输出其对应的哈希值。散列函数的输入具有任意长度,但输出始终具有固定的长度。

哈希算法的设计

散列算法的核心是一个数学函数,该散列函数构成散列算法的一部分,根据输入的数据块进行运算,得到的结果作为散列值。散列算法涉及多轮散列函数,每一轮都会接受一个固定大小的输入。这个过程会重复尽可能多的轮次来散列整个消息。

第一个消息块的哈希值会成为第二个哈希算法的输入,其输出改变了第三个运算的结果,依此类推。这种效应称为散列的雪崩效应。雪崩效应会导致两条数据的散列值大不相同。即使是一个数据位的变化,也会造成很大的差异。

散列函数的应用场景

1.数字签名:

数字签名用于验证数字消息或文档真实性,并保证信息的内容没有没有被第三方人员进行篡改。在满足先决条件的情况下,信息的收件人能通过数字签名确认信息的发放方的身份,保证信息真实由对应的发件方进行发送(真实性),通信信息的内容是生成数字签名的结果重要因素,一旦内容发生改变,数字签名会发生很大的变化,可以验证信息的内容是否发生了变化(完整性)。

数字签名采用用户的私钥加密,公钥进行解密,用户使用自己的密钥通过签名算法生成数字签名,公钥的验签过程是通过验证算法来验证数字签名签署的身份。

2.数据完整性

根据哈希函数的单向以及碰撞避免的特点,能够在不暴露文件内容的条件下生成输入文件的映射,选择一个好的哈希算法,我们能够完全相信哈希函数生成摘要的准确性。如果发送前后文件的哈希值不同,就可以说明文件被进行了篡改操作。

——————————————————————————————————————————

更新记录

区块链基础知识——哈希函数相关推荐

  1. 区块链 - 区块链基础知识:交易哈希链

    区块链 - 区块链基础知识:深入了解交易哈希链 本文的主题是执行有关交易哈希链. 交易池的角色以及 一个最长的区块链如何永远占据主导. 讨论的细节包括以下内容: 事务哈希链的实现细节 交易池的角色 为 ...

  2. 区块链基础知识与关键技术解析

    区块链基础 1. 区块链的来龙去脉     1.1 区块链技术起源     1.2 比特币产生背景与现状     1.3 数字货币概念     1.4 比特币技术原理 2. 区块链概念与产业现状   ...

  3. 【问链财经-区块链基础知识系列】 第二十七课 区块链与分布式账本的异同

    编者按:在加密货币和区块链领域,有一个业内人士常挂在嘴边的新术语:分布式账本技术(简称DLT).但具有讽刺意味的是,恰恰是比特币和各种区块链试图颠覆的实体们,例如银行,政府和大公司,对分布式账本技术情 ...

  4. w1区块链基础知识25讲

    11讲哈希值在现实世界的应用 哈希函数:以任意长度的数据输入,输出固定长度的数值,比如 32byte .这个值就称为哈希值,也可以称为 摘要 散列 指纹等. 11.1数据对比 目标就是对比两份数据不需 ...

  5. 区块链基础知识25讲

    刚刚读完这本书,总结回顾一下知识点 作者:Daniel Drescher 第1部分 区块链术语与技术基础 第1讲 理解分层的概念 系统分层 应用层与实现层 功能性与非功能性 应用层关注用户的需求,实现 ...

  6. 【问链财经-区块链基础知识系列】 第四十四课 邮储银行:U链福费廷业务系统

    一.案例摘要 福费廷业务是银行根据客户或其他金融机构的要求,在开证行.包买行或其他指定银行对信用证项下的款项做出付款承诺后,对应收款进行无追索权的融资.邮储银行以企业级开源区块链平台 Hyperled ...

  7. 【问链财经-区块链基础知识系列】 第三十八课 以太坊智能合约账户全解析

    以太坊是有账户的,每个用户都可以开设账户,账户余额是我们拥有的以太币或其他基于 ERC20 标准的通证.账户的设计使得以太坊与比特币不同,根据之前的讨论我们知道,比特币只有钱包地址和未使用的交易输出. ...

  8. 【问链财经-区块链基础知识系列】 第二十六课 隐私保护方法:多方安全计算和区块链

    编者按:私密计算是解决区块链无法保护隐私的问题.因为区块链上的数据天然是全公开的,任何人都可以查看.假如一个人知道了你的钱包地址,就可以看到你的余额.你所有的转账记录.设想一下买保险的场景,买保险需要 ...

  9. 【问链财经-区块链基础知识系列】 第十九课 区块链应用于电子存证

    编者按:在传统的具有法律效益的存证需要第三方权威公证处进行公证,并且需要绑定时间戳和相关信息,步骤繁琐,进度比较慢,后来存证电子化后一定程度上提高了效率.节省了成本,但也会有一些其他的问题,比如第三方 ...

最新文章

  1. 百练,4103,踩方格
  2. H264码流中SPS PPS
  3. smart-socket如何实现字符串通信
  4. SQL Server执行计划的理解
  5. 再读《精通css》03:引入和注释
  6. linux怎么命令设置网络连接,Linux网络操作命令
  7. VMware vSphere 6.0 虚拟机运维常见问题排除
  8. 数组的合并和升序排列_每日“力扣”系列10 下一个排列
  9. Eratosthenes筛法求素数
  10. 二. 音频系统 Audio Systems
  11. Unity3D客户端实时同步技术
  12. php爬虫模拟登陆爬取数据全过程
  13. K-mer特征提取one-hot编码
  14. 【好用的办公软件】万彩办公大师教程丨标准安装版/绿色免安装版/离线版区别
  15. 公路建设过程中路肩石水渠机的处理点
  16. [bzoj5473] 仙人掌
  17. 软件设计模式——用Java代码实现物种特征
  18. 基于注入式木马病毒(浏览器绑架)实现及防御方法的研究
  19. SyntaxError: Non-UTF-8 code starting with ‘\xbd‘
  20. 马文蔚物理学第6版配套题库 课后答案

热门文章

  1. 汇川MD380,汇川MD500,汇川is500p,is620n,is620p
  2. 基于python opencv mediapape 实现的虚拟计算器
  3. jQuery_CSS、属性
  4. java.lang.IllegalStateException:Failed to build unique file: /storage/emulated/0/...
  5. 解决Android10读取不到/sdcard/、/storage/emulated/0/文件的问题
  6. CocosCreator之控制游戏触点数量
  7. Spreading the Wealth
  8. Go语言gdb调试打印全局变量
  9. unity运行之自动暂停——作死
  10. Adobe Flashi Builder 4.5 (Flex)中将String类型转化为Date类型