其实关于安全问题的讨论或者防御方法很多手册都写得非常好,真不知道现在的程序员有没有好好看过这些文字。
比如说php,已在md5的手册上给出了以下连接:http://cn2.php.net/manual/en/faq.pass...
我大概翻译一下要点:
1. md5, sha1, sha256都不适合用来做密码的加密,以上函数都是为了快速有效的验证而设计(我想是指验证文件等运用),所以使用现代的计算机技术,是完全有可能实现暴力破解的
2. 加密password最好是使用更复杂算法的方法比如crypt,并且使用“加盐值(salt)”,楼主所说的方法就是一种加盐法,也就是将原密码通过一些有规律的变化再加密。
3. 第三点解释什么是salt,上面已经解释了,使用了salt以后就算暴力破解了也不见得能立马能看出原密码来,必须知道变化的规律才行
后来我有注意到楼主在客户端用md5加过一次密,我的第一感觉是没什么用,因为客户端的js代码谁都看得见,知道加密的规则,所以这么做如果是防截取的话,感觉用处不是特别大,而且我直接使用截取到的加密后的密码直接传输到服务器端,服务器也看不出什么差别来。
对于传输层来说,还是老老实实用https靠谱点儿