你的密码安全吗?CSDN被爆引发的警示

文章正文
发布时间:2024-07-16 20:19

明文这么危险,那如何加密呢?虽然对于网站服务器而言,它的处理能力很强。但它同时需要处理很多其他事情,存在加密耗时长、系统效率低的问题。你也许听说过一个叫哈希函数的东西。

你的密码安全吗?CSDN被爆引发的警示

哈希算法加密过程

哈希(Hash)函数,直译过来就是“散列函数”或“杂凑函数”。它是一种从多到一对应的函数,作用是将一个很大的集合影射到一个很小的集合。它的算法,就是把任意长度的输入数据经过算法压缩,然后输出一个尺寸小了很多的固定长度数据,即哈希值。

哈希值被称为“数据的数字指纹”。他具备以下性质:

1 给定输入数据很容易计算出其哈希值;

2 反过来,给定哈希值,倒推出输入数据则很难,计算上不可行。这就是哈希函数的单向性,在技术上称为抗原像攻击性;

3 给定哈希值,想要找出能够产生同样的哈希值的两个不同的输入数据,(这种情况称为碰撞,Collision),这很难,计算上不可行,在技术上称为抗碰撞攻击性;

4 哈希值不表达任何关于输入数据的信息。

MD5算法

MD5被广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。

你的密码安全吗?CSDN被爆引发的警示

当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。

你的密码安全吗?CSDN被爆引发的警示

图片来源:维基百科

MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。

你的密码安全吗?CSDN被爆引发的警示

现在黑客使用最多的一种破译密码的方法就是“跑字典”。即通过日常搜集的用作密码的字符串表或通过跑列组合生成。先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值进行比对。

你的密码安全吗?CSDN被爆引发的警示

我们假设密码的长度为8字节,且只能由字母和数字组成,即总共有26+26+10=62个字符。通过排列组合P(62,1)+ P(62,2)```+(62,8),光是存储这个天文数字就需要TB级别的磁盘阵列,前提还得是必须获得目标账户密码的MD5值的情况下。

首页
评论
分享
Top