看到标题 ,就会有人反问, 难道md5不安全吗? 并非如此,至少在目前来说, md5还是安全保存密码的方式 .

一般的程序都是在用户注册时将明文的密码加密,然后存入数据库的.

但是网上有很多md5的工具, 这又是为什么? 其实,这并不是md5不安全, 而是网上的工具用一个非常庞大的数据库保存了明文与其md5加密后的结果, 对那些密码很简单的字符串, 即可轻易从md5串反查数据库, 得到原始密码. 就是这个原理.

那么, 如果你的数据库不小心被暴露, 则恶意分子极可能用上面的方式用md5字符串出原始的密码. 从而造成安全问题 .

好,这节的知识就是避免这个问题.

1. 注册时:将原始明文密码多次加密,然后存入数据库,如何 ?效果很不错吧?如 $password = md5(md5($password));

2. 用户名和密码混合再md5加密一次如何? $password = md5(md5($password).$username); 效果似乎更不错

3.用固定加密KEY, 来二次加密,如何 ?

$KEY = ‘fjasdklfjfmslakfmdklsajfl72389749823′;

$password = md5($password.$KEY);

效果似乎更好了.

为什么要使用这些方式 ?更安全,用上面的任一方法生成md5串, 被暴力的可能性基本上是0,绝对不用担心被暴库造成密码被知晓.

要知道的一点就是: ucenter ,discuz, phpcms, ecshop 几乎无一例外地使用了上述之一的方式.

考虑一下,改变思路, 将见证一个更美好的世界出现 .