轻松看懂的加解密系列(3) —— “哈希算法”大PK

图-1

        在做了两期加解密系列之后,本章让我们换个话题——“哈希”。

        先从“信息技术世界的需求”谈起。
  • 当接收方收到一份来自发送方的文件后,如何快速验证文件内容没有丢失、乱序或者被篡改?
  • 现实世界里海量的文献如何能被映射成简短而唯一的“索引”,从而方便快速归档和查找?
  • 如何做到不把明文密码存储到第三方验证机构,但又可以在第三方安全地验证密码?
  • 对于一份电子合同文本来说,如何产生一个消息摘要来确保消息的完整性和真实性?

        加解密的方式显然无法满足以上这些需求,这就需要数据安全领域的另一大概念“哈希”出场了。在谈到哈希算法时,书本上给出的定义通常会包括,哈希算法是一种将输入数据转换为固定长度的数字串(哈希值)的数学函数。哈希值是唯一的,即使输入数据微小地变化,哈希值也会截然不同。哈希运算本身不被视为一种加密(Encryption)操作,而是一种散列(Hashing)操作【图-1】。虽然哈希和加密都涉及数据转换,但它们有本质上不同的目标和特性:

图-2

哈希(Hashing):

  • 目标:哈希算法的主要目标是将输入数据(原文)转换为一个固定长度的哈希值(散列值)【图-2】。
  • 特性:哈希算法是单向的,不可逆的,即无法从哈希值还原出原始数据。它旨在生成唯一的哈希值,以便验证数据完整性、生成数据的唯一标识符以及用于快速数据检索等。
  • 典型用途:数据完整性验证、数字签名、密码存储、数据索引等。

加密(Encryption):

  • 目标:加密算法的主要目标是将原始数据(明文)转换为经过加密的数据(密文),以便保护数据的机密性,只有授权用户可以解密和访问数据。
  • 特性:加密算法是可逆的,只有掌握正确的密钥才能解密密文还原为明文。它的目标是提供保密性和隐私保护。
  • 典型用途:数据传输加密、文件加密、通信
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值