专栏首页九彩拼盘的叨叨叨你收到的文件被恶意篡改过吗? 摘要算法简介

你收到的文件被恶意篡改过吗? 摘要算法简介

想象这样的场景,有客户给你发机密文件。那你怎么确定你收到的文件就是客户发你的,而没有被第三方恶意篡改过呢?

摘要算法可以解决这个问题。

通过摘要算法,可以将文件生成一个摘要的字符串。内容不一样的文件,生成相同的摘要字符串的概率极低。因此,比较两个文件是否一样只需比较摘要字符串是否一样即可。上面的问题,我们可以这么解决

  1. 客户用摘要算法生成机密文件的摘要字符串。
  2. 客户将机密文件发给你。
  3. 客户用另一种渠道将摘要字符串发你。
  4. 你将收到的文件用和客户一样的摘要算法生成摘要字符串。
  5. 对比客户发你的摘要字符串和你生成摘要字符串。如果相等,则文件没有被篡改。

常见的摘要算法有 CRC8,MD5,SHA1,SHA512 等。

常见应用场景

1 验证软件是否被篡改 大多数大型软件公司或开源组织用摘要算法来校验下载的软件是否被篡改。这些软件的下载页面,会有下载软件的 MD5 或类似的摘要值。

2 对敏感加密 一般从网页向服务器端,发送的用户密码会用 MD5 加密。服务器的数据库里也会存加密后的密码。这样,即使数据库的数据泄漏了,泄漏的也只是加密数据。当然,别有用心的人会计算常见的密码的 MD5 值,生成“字典”(专业称呼是彩虹表)。通过查“字典”可以得到部分加密前的密码值。所以,一般会对 MD5 的数据再混入一些无关数据,称为“加盐”。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaScript 中的真值与假值

    Joel
  • requestAnimationFrame简介

    当我们写window.requestAnimationFrame(回调函数)时,浏览器会在下次重绘前执行回调函数。

    Joel
  • App Store 隐私政策网址(URL)

    本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。但本软件将以高度的勤勉...

    Joel
  • Day19内建模块struct&hashlib&hmac

    struct Python提供了一个struct模块来解决bytes和其他二进制数据类型的转换。 struct的pack函数把任意数据类型变成bytes: >...

    林清猫耳
  • LeetCode 76,怎么搞定面试时的算法题?你需要学会套路

    今天是LeetCode专题的第45篇文章,我们一起来看看LeetCode的76题,最小窗口子串Minimum Window Substring。

    TechFlow-承志
  • JS 小技巧

    可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为NaN,或者使用 a !== a 来判断是否为NaN,因...

    grain先森
  • 快速掌握JavaScript面试基础知识(一)

    根据StackOverflow 调查, 自 2014 年一来,JavaScript 是最流行的编程语言。当然,这也在情理之中,毕竟 1/3 的开发工作都需要一些...

    Fundebug
  • Vue3 为何使用 Proxy 实现数据监听

    vue3 响应式数据放弃了 Object.defineProperty,而使用==Proxy==来代替它

    Krry
  • 灰度图像增强

    逍遥剑客
  • 新手怎么学JS?JavaScript基础入门

    在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容。

    Tz一号

扫码关注云+社区

领取腾讯云代金券