密码管理



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

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

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

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

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

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

您可以使用随机生成的密钥对数据进行加密。该密钥又使用根据密码生成的密钥进行加密。

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

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

相关内容

  • 没有找到相关文章

最新更新