密码管理

use*_*108 4 java encryption passwords password-encryption

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

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

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

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

Maa*_*wes 7

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

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

您使用随机生成的密钥加密数据.此密钥依次使用密码生成的密钥进行加密.

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