关于散列数查表问题

 实际存储方式有问题。
首先要明白一个概念性的问题:
加密只有解密(破解)的问题,散列只有碰撞(伪造)的问题。


对于一个散列数,实际碰撞会很多的,且有一定规律可寻,正如王晓云教授找到MD5碰撞的规律。


我们可以用一个日常生活来举例,攻破巨型数据库查表问题:


某日必定对应一个星期,例如今天是周一。
星期的周期是7天,即每7天为某星期几。
但是星期几却不知是具体的某日。


假若用数据库来存储星期散列数0~6(周日周一~周六),那么要存储多少日期???
故无法实现,即使可行也不现实。


HotWC3单向散列函数就是基于碰撞实现的,某个散列值对应巨多的原文信息。
即多对一的问题,就是日期和星期的关系。无法查表。


而且原文信息变长,这是散列函数的特性。
任意长度的原文信息都会经过散列函数被散列为固定长度的散列值。
从一个方向运算很容易,而从另一个方向运算很难。
故只有知道了用户密码才很容易计算出散列值,反之从散列值还原出用户密码几乎不可能实现。因为碰撞很多,而只有一个是对的。


菜农的CRC安全密码就是基于碰撞实现的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值