为什么密码要以MD5值存储在数据库才更安全?

关于MD5加密大家肯定很早就知道了,一看是MD5加密就觉得肯定是安全的啊,但是为什么会有那么多的MD5在线加密解密站?在后台进行加密,到底有什么作用?为什么密码要以MD5值存储在数据库才更安全?下面通过几个问题了解MD5加密解密。

关于MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

一、为什么数据库中保存的是密码的MD5值而不是明文?

首先,MD5值肯定比明文要更加安全的,如果数据库存储的是明文,那么在数据库被攻击后,明文密码肯定会遭到泄露,这就使得普通用户都可以很容易进行登录。

但是如果数据库存储的是通过加密后的MD5值,就算泄露了,普通用户也没法登录,因为泄漏的是MD5值,而页面上登录时要求输入的是明文。

另外,明文相对于其MD5值来说,包含更多的信息,比如明文可能是银行密码,或者包含出生日期等,这些都是敏感信息,通过MD5之后,这些敏感信息就会被抹掉,即信息量减少。如果使用明文存储,那么登录时,网络传输的是密码明文。

二、MD5广泛应用在什么地方呢?

1.密码

可以当做密码验证,为了保证密码不在cMD5网站上破译,最好加盐及乱序,也可以只取一半MD5的长度。MD5是不可逆算法,只要保证算法不变,就能和数据库中的MD5相匹配。

2.搜索

以搜索为例,你输入“MD5加密解密”和输入“加密解密MD5”的结果是不一样的,因为你搜索的时候他们对应的MD5是不一样的,他们可以根据这个MD5去查询内容。

3.版权

当一个视频或者音频创作出来的时候它的MD5是唯一的,若以后有翻录等版本出来,即使画质,声音,文件名都一样,但是他们的MD5验证是不一样的,所以可以验证版权。还比如用某一账户下载的视频它的账户信息也回和视频一起MD5操作,如果以后这个人私自传播通过MD5就可以去数据库中查找泄露版权的情况。

4.文件完整性的校验

当下载一个文件时,服务器返回的信息中包括这个文件的MD5,在本地下载完毕时进行MD5,将两个MD5值进行比较,如果一致则说明文件完整没有丢包现象。

5.文件上传

文件上传时会上传文件的信息此时将文件的MD5上传,服务器中存储这个MD5值,并存储这个MD5值所对应的已上传字节长度,比如未上传对应为0,已上传对应为-1,已上传200字节就对应200,这个上传的时候可以匹配到这个文件在服务器中的状态,方便做断点续传,只要源文件没有更改,即使换个名字,换个账户都可以在服务器找到对应的文件,所以当服务器中有已经上传完毕的此文件时,别人再上传这个文件就可以实现秒传。

三、简单测试如何在线生成md5密码值

网络上的MD5在线加密解密站的原理即软件通过算法生成字典,然后使用MD5函数加密该字典中的值形成密文,接着跟需要解密的密文进行比较,如果相同则认为解密成功。目前网上有很多网站提供MD5加密或者加密值查询的,就是将加密后的MD5值,输入到网站中,如果网站数据库中存在该MD5,则该值对应的MD5加密前的值就为密码

加密测试:

在浏览器中输入地址“http://md5.cn/”,点击“在线工具”,然后点击在线工具中的“Hash”。

如图所示,输入加密字符串“666888”,我这里的加密字符串是自己随意测试的,输出结果为“75e266f182b4fa3625d4a4f4f779af54”。

解密测试:

在浏览器中输入地址“http://md5.cn/”,在输入框中输你想要查询的MD5值,然后单击“查询”按钮即可,如图所示,将刚刚加密到的字符串“75e266f182b4fa3625d4a4f4f779af54”输入,通过MD5后的值为:“666888”。

以上加密解密的内容均为测试,这个MD5加密解密站还可以解锁很多玩法,有需要的朋友可以去试一试,测试地址:http://md5.cn/。


你可能感兴趣的:(为什么密码要以MD5值存储在数据库才更安全?)