在处理用户登录功能的时候,数据库中存储何种加密过的密码对于安全性至关重要。直接使用MD5等加密会很容易破解,而简简单单加一个salt也好不到哪去,具体可见之前的文章(http://www.cnblogs.com/waytofall/p/3456013.html)的第一步部分及其引文。原理以及说得差不多了,这里列一些与具体的加密算法相关且能够让你快速在项目中应用它们的网上资源:
这篇文章介绍了几种加密方式的原理,其中的引文比较值得看一下:
这篇文章给出了不同方法的Java实现:
如何生成安全的密码 Hash:MD5, SHA, PBKDF2, BCrypt 示例
这篇文章提到了为何不需要在使用BCrypt算法的时候显式存储salt和迭代次数:
How can bcrypt have built-in salts?
这里有一个各种加密算法的Javascript实现,很棒,可以研究下源码。可以参看下主页上的文档,有针对不同算法的使用方法的例子,大都非常简单使用。另外要注意“The Hasher Input”、“The Hasher Output”这两节,讲到了算法的输入输出格式,对于快速上手使用代码很有帮助。