在数据库中存储密码的java加密方法
Possible Duplicate:
What function to use to hash passwords in MySQL?
Secure password storage
密码加密后,将密码存储到数据库中的最佳机制是什么?什么是加密方法和Java实现
你可以在下面搜索框中键入要查询的问题!
Possible Duplicate:
What function to use to hash passwords in MySQL?
Secure password storage
密码加密后,将密码存储到数据库中的最佳机制是什么?什么是加密方法和Java实现
# 1 楼答案
存储密码的常用方法是使用消息摘要算法对密码进行散列。我建议使用SHA1,或者如果您需要更多字节(>;可能的冲突更少),建议使用SHA256或512。以下是Java中的SHA1实现:
http://www.anyexample.com/programming/java/java_simple_class_to_compute_sha_1_hash.xml
还建议您使用一种盐使gessing密码哈希更难。说明:
http://en.wikipedia.org/wiki/Salt_(cryptography)
# 2 楼答案
从不存储加密密码。而是存储一个安全的单向散列,比如SHA-1(有一些小的安全问题),或者一个更新的、更安全的变体
这样做实际上违反了您可能要遵守的几个监管要求,例如,如果您参与了信用卡业务(进行电子商务?),则需要遵守PCI DSS
类似http://www.mindrot.org/projects/jBCrypt/的东西也可能被证明是有用的
+1表示Borealid的评论-即使使用哈希,哈希也需要正确进行,并且必须包含“salt”(额外的随机数据以防止攻击的子集)。jBCrypt将为您做到这一点(其他类似的库也是如此)