可能重复:
What function to use to hash passwords in MySQL?
Secure password storage
加密密码后,将密码存储到数据库的最佳机制是什么?什么是加密方法和Java实现?
答案 0 :(得分:7)
从不存储加密密码。存储安全的单向哈希,例如SHA-1(有一些小的安全问题),或者更新,更安全的变体之一。
这样做实际上是针对您可能受到的若干监管要求,例如PCI DSS,如果您涉及信用卡(进行任何电子商务?)。
像http://www.mindrot.org/projects/jBCrypt/这样的东西也可能有用。
对于Borealid的评论,+1 - 即使使用散列,散列也需要正确完成,并且必须包含“salt”(其他随机数据以防止一部分攻击)。 jBCrypt会为你做这个(和其他类似的库一样)。
答案 1 :(得分:1)
存储密码的常用方法是使用消息摘要算法对其进行哈希处理。我建议使用SHA1,或者如果你需要更多的字节( - >更少可能的冲突),SHA256或512.这是Java中的SHA1实现:
http://www.anyexample.com/programming/java/java_simple_class_to_compute_sha_1_hash.xml
还建议你使用盐来制作密码哈希更难。说明: