将加密密钥存储在Java代码中?

参见英文答案 >
How do I securely store encryption keys in java?                                    4个

我正在使用JASYPT在我们基于Java的软件中对密码进行加密解密.这就是我们如何加密密码:

        StrongTextEncryptor textEncryptor = new StrongTextEncryptor();
        textEncryptor.setPassword(PASSWORD_ENCRYPTION_KEY);
        String ePasswd = textEncryptor.encrypt(txtPasswd);

现在,我应该在哪里以及如何存储上述代码中使用的PASSWORD_ENCRYPTION_KEY?在Java程序中存储和访问这些密钥的最安全或最常用的方法是什么?

谢谢,

最佳答案 无处…

你不应该在你的程序中存储PASSWORD_ENCRYPTION_KEY,因为这是错误的方法.像owlstead已经指出的那样:你需要一个Public key infrastructure

基本上,您可以为需要访问它的每个用户加密PDF,这样他们就可以使用个人私钥对其进行解密.这是通过使用AES-256加密PDF来完成的,然后使用来自每个用户的公钥加密使用的密钥.这些个人加密的密钥可以安全存储.

点赞