04-(转载)摘要与加密的区别(以MD5算法为例)

转载地址:https://juejin.im/post/5a7d11be5188257a5e5738c3

摘要与加密的区别;MD5算法

(一)摘要的用途

比如一些提供下载的网站,在页面上除了压缩包的下载地址还提供了对应的MD5值。
我们下载该压缩包后可以查看压缩包的MD5值。
对比下载的压缩包MD5值和网站提供的MD5值,如果两个MD5值不一致,那么说明该压缩包不是官方提供的那个压缩包,可能被替换成其他文件或被修改过。比如苹果开发工具的XCodeGhost事件。

MD5算法就是一种常见的摘要算法。该算法可以生成压缩包的一个128 bit 的二进制串。除了压缩包,也可以应用于其他文件和字符串。比如数据库中不会直接存储账号密码,比如我就习惯将 密码拼接一个无规律的字符串 然后计算出MD5摘要放入数据库中(下面会讲解原因)。MD5经常和BASE64结合使用。

(二)摘要和加密是两个概念

1,摘要

  • 摘要是哈希值,我们通过散列算法比如MD5算法就可以得到这个哈希值。
  • 摘要只是用于验证数据完整性和唯一性的哈希值,不管原始数据是什么样的,得到的哈希值都是固定长度的。
  • 不管原始数据是什么样的,得到的哈希值都是固定长度的,也就是说摘要并不是原始数据加密后的密文,只是一个验证身份的令牌。所以我们无法通过摘要解密得到原始数据。

2,加密

加密是通过 “加密算法” 将 "明文" 加密成 “密文”。
我们可以通过 “密钥” 和 “解密算法” 将 “密文” 还原成 “明文”。

3,摘要的理解误区

错误的理解:

  • 通过加密算法得到信息摘要。
  • 可以通过对信息摘要这个加密结果进行解密得到原始数据。

错误纠正:

  • 得到摘要的算法是散列算法,没有所谓的 “加密” 、“解密” 的说法,这些说法其实都是不严谨的,虽然在很多书上都说这么描述的。
  • 摘要只是验证身份的令牌,我们无法通过摘要还原出原始数据。

(三)MD5算法不是加密算法

1,MD5算法简介

MD5是用于计算摘要的散列算法,计算结果是 固定长度为 128bit 的二进制串。不是加密算法。

2,MD5算法不是常用于账户密码的加密吗?

这样理解是不严谨的,因为我们也是用MD5计算出账户密码的摘要,通过这个摘要是无法还原出账户的原始密码的。因为摘要只是个表名身份的令牌,不能通过令牌还原出原始数据。

3,MD5算法不可逆,那么网上的那些MD5在线加解密怎么看?

MD5算法是不可逆的,我们无法从算法入手还原出MD5算法处理前的结果。由于MD5是信息-摘要算法,通过摘要是无法得到原始数据的,所以解密这一说法本身就是错误的。

4,栗子讲解

虽然MD5算法不可逆,也无法通过摘要还原出原始数据,但这不代表安全是无懈可击的。

由于字符串通过MD5计算的摘要是唯一的,那么通过MD5字典随着时间积累保存越来越多的MD5记录,通过穷举这个字典就可以很简单地找到你的密码。

比如下面这个网站就保存了很多MD5记录,也就是这个网站有一个MD5字典,我们输入通过MD5算法的123的摘要。通过穷举这个字典,马上就找到这个摘要对应的信息是123。


image.png

以上不是通过破解MD5算法,也不是还原信息摘要的方式得到原始信息。而是通过穷举MD5字典,字典里面保存着类似 (信息)123:(摘要) 202CB962AC59075B964B07152D234B70这样得记录,我们才知道该摘要对应得信息是123。

5,防止MD5字典穷举 :提高信息的长度来提高字典穷举的复杂度

1)分析

穷举字典法要求字典保存MD5算法的信息和计算后的摘要,字典是有限的,那么多信息不可能都存下来,所以一般只会保存长度比较短的信息和对应的信息摘要。一般情况下密码长度不会很长,所以通过穷举字典基本上都可以找到密码摘要对应的信息。

退一步说,即使MD5字典保存了很长的信息和对应的信息摘要,那么说明这个字典是非常庞大的,即使穷举的话也要花非常漫长的时间才能穷举到该记录。

所以我们可以通过提高信息的长度,这样MD5字典存在该信息的 信息-摘要 记录的可能性很低,即使存在也要耗费非常多的时间去穷举。

2)实现思路

以前写Rails应用的时候,先将信息进行BASE64编码,这样得到的就是一个很长的字符串。

现在在SSM应用中,我没有采取先用BASE64进行编码的方案,而是 "密码 + 任意字符串"再进行MD5加密。比如 密码是password,那么我会下面这么做:

1,result = MD5加密算法(password + "adfasdfsdafsadasou89ZXcj@#$aKJdjklj;easd../dSF.,";)
2,将result存入数据库
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容