我正在使用带有postgresql的play-framework 2.0(java web-framework)。
感谢
答案 0 :(得分:9)
您想要对密码进行哈希处理,而不对其进行加密(有关详细信息,请参阅this question)。目前推荐的方法是使用自适应散列算法,如bcrypt。 jBcrypt是一个可以使用的可靠的Java实现。
对于数据库类型,您可以安全地将其视为字符串。
答案 1 :(得分:2)
我将jBcrypt与Play框架内部加密一起使用(从这里得到了想法:https://groups.google.com/forum/?fromgroups#!topic / play-frame / 9KIUwWBjudQ [1-25])
此外,当我为用户添加注册时,我确保密码具有某种程度的复杂性(至少8个miminum,大字母,一个数字)。等你基本上说出来的名字?但只是想指出安全性不只是加密,一半的问题是确保用户使用复杂的密码:)
答案 2 :(得分:0)
您应该使用SHA-x算法来散列密码。这或多或少是MD5的替换散列函数。
MessageDigest.getInstance("SHA-512").digest(toBytes(toDigest)))
但要小心,在对密码进行哈希处理之前为密码添加一个盐,以避免哈希表攻击。
DB列应该是varchar。长度取决于您使用SHA算法的版本
HIH