4

我有一个关于密码管理的问题。假设我有一个程序,用户输入密码,数据被加密存储。

一种方法是:使用用户密码加密数据。优点:用户将负责密码的安全性以及您的数据的安全性。缺点:如果用户更改密码,则必须解密和加密所有数据。

否则:数据使用用户以外的密码加密(随机)。以及用于加密随机密码的用户密码。优点:如果用户更改密码,则不必重新加密所有内容。

至于保存用户密码,我使用的是 jasypt.org。没事吧?正确的方法是什么?我认为弱点在于加密器 Jasypt。使用 AES-128 加密的数据。使用 Jasypt,因为这就是我所知道的。

4

2 回答 2

7

通常,您应该使用密码加密数据密钥

要加密,首先将密码转换为密钥。您将为此使用基于密码的密钥派生函数(PBKDF)。PBKDF2 目前是最标准的选项。

您使用随机生成的密钥加密数据。该密钥又使用从密码生成的密钥进行加密。

要更改密码,请先询问原始密码。然后解密数据密钥。然后,您可以要求输入新密码并重新加密数据密钥。加密数据本身不必被触及。

于 2013-02-06T01:38:10.133 回答
3

基本上你想用salted password hashing. CrackStation有一篇关于这个主题的非常好的文章。

于 2013-02-06T01:35:58.627 回答