Jakarta ee 在我的J2EE应用程序中以加密形式存储外部系统的密码
我们有一个与多个外部系统对话的J2EE应用程序。每个外部系统都希望我们的应用程序通过用户名/密码进行身份验证。因此,每当我们与外部系统交谈时,我们都需要发送用户名/密码。问题是存储这些密码。我们希望以安全的形式存储这些密码。显然,我们不能使用MD5散列密码,因为我们需要将密码发送到外部系统。所以我们需要加密密码Jakarta ee 在我的J2EE应用程序中以加密形式存储外部系统的密码,jakarta-ee,encryption,passwords,Jakarta Ee,Encryption,Passwords,我们有一个与多个外部系统对话的J2EE应用程序。每个外部系统都希望我们的应用程序通过用户名/密码进行身份验证。因此,每当我们与外部系统交谈时,我们都需要发送用户名/密码。问题是存储这些密码。我们希望以安全的形式存储这些密码。显然,我们不能使用MD5散列密码,因为我们需要将密码发送到外部系统。所以我们需要加密密码 存储加密密码的位置。数据库 在哪里存储加密密钥 对于这个特殊问题,什么是最佳做法?我不是专家,但我也有类似的要求。来自security.stackexchange.com的讨论了这个问题
对于这个特殊问题,什么是最佳做法?我不是专家,但我也有类似的要求。来自security.stackexchange.com的讨论了这个问题。公认的答案给出了替代方案。简言之,它们是:
- 将它们存储在文件系统中,如果有人获得对文件系统的访问权限,这会使它们容易受到攻击
- 强制管理员在启动时输入它们
可以考虑将密码存储在数据库中。
使用AES-CBC,每个密码将使用相同的密钥加密,但不同的IV,您还需要在数据库中存储每个密文的IV,一些人建议将IV与密文分开存储。
加密/解密的唯一密钥可以存储在web服务器的安全区域中
希望这对您有所帮助。您可以在存储和检索密码时使用gpg进行加密/解密。您可以将证书存储在您的服务器中(以及脱机时的备份副本),当然这意味着如果有人获得对您服务器的特权访问,您的密码将被泄露,但在这种情况下,有更紧迫的事情需要担心。存储密码的最安全方法是避免将密码存储在服务器上。而是保存密码验证器,该验证器可用于验证密码,但不能用于恢复密码。实现方法之一是。在本议定书中: