听说这玩意可以防篡改——单向散列函数

简介: 由于某些原因,访问国外网站的速度较慢,所以我们常使用镜像网站下载文件。假设你正通过镜像网站从网络上下载一款软件,但是如何保证你下载的软件是正版,没有被恶意篡改过呢?怎么保证我的软件的完整性呢?

这是我要的文件吗?


  由于某些原因,访问国外网站的速度较慢,所以我们常使用镜像网站下载文件。假设你正通过镜像网站从网络上下载一款软件,但是如何保证你下载的软件是正版,没有被恶意篡改过呢?怎么保证我的软件的完整性呢?


单向散列函数


  要解决上述问题就需要用到单向散列函数,单向散列函数相当于为数据增加一个数据指纹,我们使用一个函数计算出数据的指纹,这个指纹是独一无二的,相同数据生成指纹相同,不同数据生成指纹不同(即使一小点改动最终生成的指纹都完全不同)通过对比指纹验证数据是否被篡改过


如下图所示:



  单向散列函数有一个输入和一个固定长度的输出。输入称为消息,输出称为散列值。输入可以是一个文件,一个视频,一段程序等等(本质都是二进制数据流),输入不限长度,输出散列值的长度跟消息的长度无关,不论多大长度的消息,都会计算出固定长度的散列值。


单向散列函数性质


  • 对于任何长度的输入数据块都能产生固定长度的输出散列值。
  • 能快速计算散列值。
  • 消息不同散列值不同,一点点的变动都会引起整个散列值的巨大变化。(因为散列值的长度是固定的,所以有可能会出现不同的消息产生相同散列值的情况,这种情况叫做碰撞)
  • 单向性(不能通过散列值反算出消息)


常用单向散列函数


消息摘要算法(Message Digest)


  MD4MD5是由Rivest分别在1990 年和 1992 年设计的,现在已经不再安全了。它们接受任意长度数据流后可以产生出一个128bits(16字节)的散列值。1996年后该算法被证实存在弱点,可以被破解,对于需要高度安全性的数据,建议改用其他算法,如下面的 SHA-2


安全散列算法(Secure Hash Algorithm)


  SHA 算法是一种密码散列函数算法标准,由美国国家安全局研发,SHA算法经过了SHA-1SHA-2SHA-3

  • SHA-1:一种能够产生 160bits(20字节) 散列值的单向散列函数,已经不安全,现在不推荐使用
  • SHA-2:是 SHA-1 的后继者,其下又可再分为六个不同的算法标准,包括:SHA-224SHA-256(常用)SHA-384SHA-512SHA-512/224SHA-512/256
  • SHA-3:第三代安全散列算法(之前名为 Keccak),这个算法比起其他算法计算速度明显更快


应用


  • 检测数据是否被篡改(防篡改)
  • 基于口令的加密
  • 消息认证码
  • 数字签名
  • 伪随机生成器
  • 一次性口令
相关文章
|
监控 Linux
在Linux中, 如何查看系统的资源使用情况?
在Linux中, 如何查看系统的资源使用情况?
|
Kubernetes 关系型数据库 MySQL
k8s学习--利用helm部署应用mysql,加深helm的理解
k8s学习--利用helm部署应用mysql,加深helm的理解
1475 0
|
运维 安全 容灾
亿格名片 | 小红书:「红线数据不外泄」准则下的数据安全“种草”攻略
小红书的安全是紧贴业务类型与发展阶段演进开展的,从内容安全再到技术安全、网络安全等方面不断迈进。区别于传统围绕防止黑客入侵的安全建设思路,保障数据安全以及管理访问控制是小红书高度关注的要点,防止红线数据外泄是终态目标。当下,随着数据安全等政策法规的落地,数据安全成了备受关注的领域,在实现我们防护红线数据不外泄的核心目标,且保障员工工作效率及体验,我们选择性地舍去了传统云桌面、沙箱之类比较“重”的工具。基于此,共创落地零信任数据安全体系,集成至内部安全办公系统中,替代3、4个安全软件,实现最小权限访问以及数据分类分级、流转、分发等全方位管控,这样既有效保护红线数据、又不影响员工效率与体验。
亿格名片 | 小红书:「红线数据不外泄」准则下的数据安全“种草”攻略
|
存储 运维 OLAP
带你读《Apache Doris 案例集》——05 当 Apache Doris 遇上大模型:探秘腾讯音乐如何 基于大模型+ OLAP 构建智能数据服务平台(2)
带你读《Apache Doris 案例集》——05 当 Apache Doris 遇上大模型:探秘腾讯音乐如何 基于大模型+ OLAP 构建智能数据服务平台(2)
1109 0
|
存储 传感器 物联网
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
1214 2
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
|
数据采集 前端开发 API
Playwright: 比 Puppeteer 更好用的浏览器自动化工具(下)
Playwright: 比 Puppeteer 更好用的浏览器自动化工具
1271 0
|
安全 区块链 开发工具
去中心化交易平台dex开发规则设计 | 去中心化交易平台dex源码示例
去中心化交易所(DEX)是一种基于区块链技术的交易所,它通过智能合约实现交易的执行和记录,避免了传统交易所存在的中心化风险和操作不透明等问题。如果您想开发一款去中心化DEX,需要考虑以下几个方面:
|
机器学习/深度学习 缓存 并行计算
NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
NVIDIA Tesla系列GPU适用于高性能计算(HPC)、深度学习等超大规模数据计算,Tesla系列GPU能够处理解析PB级的数据,速度比使用传统CPU快几个数量级,NVIDIA Tesla GPU系列P4、T4、P40以及V100是Tesla GPU系列的明星产品,云服务器吧分享NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比:
|
前端开发 JavaScript 开发者