在我的Web应用程序中,我访问存储在Java KeyStore中的私钥。我想知道什么是最好/推荐的方式来存储KeyStore和私钥的密码。如何存储Java KeyStore密码?
我已经考虑过使用属性文件,但在生产环境(在纯文本文件中存储密码)中使用它看起来不太安全。另外,在我的代码中对密码进行硬编码并不是我愿意接受的选项。
谢谢。
在我的Web应用程序中,我访问存储在Java KeyStore中的私钥。我想知道什么是最好/推荐的方式来存储KeyStore和私钥的密码。如何存储Java KeyStore密码?
我已经考虑过使用属性文件,但在生产环境(在纯文本文件中存储密码)中使用它看起来不太安全。另外,在我的代码中对密码进行硬编码并不是我愿意接受的选项。
谢谢。
您可以使用属性文件,因为您提到只是散列密码以获得额外的安全性salt hash密码。这就解决了必须以纯文本保存密码的问题。然后你可以使用MD5或SHA1密码来散列它,个人选择。
这是一个棘手的引导问题。一些选项:
让你的应用程序提示用户解锁密钥库(不是很友好,但有可能)
如果你散列密码,你将如何检索密码?散列密码是没有意义的。 – 2011-03-16 13:01:50
你不检索它,你再次散列它,并检查它们是否相同。例如,如果我有你的用户名的散列:d3a03c197da2c09307f06f8513443599 然后在应用程序中,你会散列用户放入什么,所以你的用户名,看看是否是相同的。 – Dean 2011-03-16 19:19:00
我必须同意Καrτhικ,您将无法使用其密码的散列打开密钥存储区。使用密码散列保护密钥存储不会增加任何额外的安全性。 – nihilist84 2015-06-11 09:22:07