【密码加密原则二】

目录

1  密码加密原则(续)

1.1 使用加盐的方式可以使得“密码”

1.2 优缺点


1  密码加密原则(续)

1.1 使用加盐的方式可以使得“密码”

如果用户的密码过于简单,使用加盐的方式可以使得“密码”(其实是盐值和真正的原始密码的组合)变得更复杂,从而降低被收录对应关系的风险!这种做法的根本思想在于“大多计算机的硬盘不足于收录特别大量的数据”。

如果允许使用95种可打印字符作为密码的组成,则8位长度的密码排列组合有 6,634,204,312,890,625 种,想要收录所有可能的8位长度密码与MD5摘要结果的对应关系,大约至少需要 6,634,204,312,890,625 x (8 + 32) 个字符,如果按照每字符占2字节来算,共需要 6,634,204,312,890,625 x (8 + 32) x 2个字节,大约需要消耗 482,701 TB的存储空间!

如果想要通过查询的方式来破解MD5编码的结果,8位长度的全部对应关系需要约50万TB的存储空间,几乎是不现实的!对于尝试破解密码的一方来说,可以采取“预计算的哈希链”来解决此问题!

在使用“预计算的哈希链”做法之前,首先,必须假定原始密码的长度,以6位长度为例,假设原始密码是`123456`,经过MD5编码后,结果是:

e10adc3949ba59abbe56e057f20f883e

接下来,需要设计一个“约简函数”,将以上摘要结果变成6位长度的,此“约简函数”应该如何设计,并没有固定的做法,假设是取出摘要结果中的前6位,则以上摘要结果经过“约简函数”的运算后,就变成了:

e10adc

接下来,再使用MD5对以上约简结果进行编码,得到:

```
96bf38d01b84aa16cf2bb9f55c61ac85
```

然后,重复以上的操作,继续使用约简函数,得到:

```
96bf38
```

继续使用MD5对以上结果进行编码,得到:

```
c6349b59d5ca7f5fa05de13d26fcf20c
```

假设,整个过程持续做10次,数据的变化将是:

```
123456
    e10adc3949ba59abbe56e057f20f883e
    96bf38d01b84aa16cf2bb9f55c61ac85
    c6349b59d5ca7f5fa05de13d26fcf20c
    ac4c4cd7cde8d12f799c72b337af37bb
    068696500ff51c01bc5012884eecd673
    e3225ab333b37defddba2a8022c0c468
    771fd067be8d0fe2195e5df0bc9826cc
    707d8265701e8573695b67cb4d667083
    7750d6017d681c782c0e6bcce65fa2c0
    698ff2cd213ebb4a68c49570d3b3b148
698ff2
```

对最后的结果再次使用约简函数运算,将得到`698ff2`,然后,将最开始的`123456`(原文)和最后得到的`698ff2`(密文)存储到数据库中即可!(最后一步也可以不存约简结果,而是直接存摘要结果)

假设已经某个MD5摘要数据是`e3225ab333b37defddba2a8022c0c468`,当尝试“破解”时,依然使用约简函数得到`e3225a`(与之前的做法保持一致,取出前6位),并与当前数据库的所有“密文”进行对比,如果无此结果,则对`e3225a`使用MD5进行运算,将得到的结果:`771fd067be8d0fe2195e5df0bc9826cc`再次约简,得到`771fd0`,与数据库中的再次对比,如果仍无此结果,则继续重复类似的操作,最多执行10次(与此前的生成过程保持一致),如果其中某1次命中,则密码的原文一定在对应生成过程中,则可以根据数据库中对应的原文`123456`来执行类似的操作,每次使用MD5编码后,都与尝试破解的`e3225ab333b37defddba2a8022c0c468`进行对比,最后,就可以“破解”成功!

1.2 优缺点

使用“预计算的哈希链”是典型的“牺牲时间,换取空间”的做法!

其实,以上做法仍有一部分缺陷:

- 生成对应关系需要消耗大量的时间
- 不同的链中可能存在相同的部分(取决于约简函数的设计)

为了进一步优先这个做法,就有人专门去设计了更优质的约简函数,并且,生成好了以上预计算哈希链的数据库,放在网络上提供下载!具体表现为“彩虹表”。

作为密码的加密方,为了进一步防止密码被破解,可以使用位数更长、组成字符更复杂的,甚至使用随机的盐值!

注意:即使是这样,也无法有效的阻止暴力破解!

个人主页:居然天上楼

感谢你这么可爱帅气还这么热爱学习~~

人生海海,山山而川

你的点赞👍 收藏⭐ 留言📝 加关注✅

是对我最大的支持与鞭策

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

居然天上楼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值