在 Java 代码中存储加密密钥?
我正在使用 JASYPT 在我们基于 Java 的软件中对密码进行加密解密。这就是我们加密密码的方法:
StrongTextEncryptor textEncryptor = new StrongTextEncryptor();
textEncryptor.setPassword(PASSWORD_ENCRYPTION_KEY);
String ePasswd = textEncryptor.encrypt(txtPasswd);
现在,我应该在哪里以及如何存储上面代码中使用的 PASSWORD_ENCRYPTION_KEY ?在 Java 程序中存储和访问这些密钥的最安全或最常见的方法是什么?
谢谢, 深的
I am using JASYPT for encryption decryption of passwords in our Java based software. This is how, we encrypt the password:
StrongTextEncryptor textEncryptor = new StrongTextEncryptor();
textEncryptor.setPassword(PASSWORD_ENCRYPTION_KEY);
String ePasswd = textEncryptor.encrypt(txtPasswd);
Now, where and how should I store this PASSWORD_ENCRYPTION_KEY used in the above code ? What is the most secure or common way of storing and accessing these keys in Java program ?
Thanks,
Deep
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有地方...
您不应该将
PASSWORD_ENCRYPTION_KEY
存储在您的程序中,因为这是错误的方法。就像 owlstead 已经指出的那样:你需要一个 公钥基础设施基本上,您可以为每个需要访问 PDF 的用户加密 PDF,这样他们就可以用他们的个人私钥解密它 钥匙。这是通过使用 AES-256 加密 PDF,然后使用每个用户的公钥加密所使用的密钥来完成的。这些个人加密的密钥可以安全存储。
Nowhere...
you should't store the
PASSWORD_ENCRYPTION_KEY
in your program as this is the wrong approach. Like owlstead already pointed out: you'd need a Public key infrastructureBasically you could encrypt the PDF for every user that needs to have access to it, so they'd be able decrypt it with their personal private key. This is done in a matter of encrypting the PDF let's say with AES-256 and then encrypt the used key with the public key from each user. Those personally encrypted keys are safe for storage.