如何安全存储SecretKey?

时间:2013-02-18 17:28:07

标签: java security encryption keystore secret-key

我正在构建一个基本的webapp,它接收用户输入并返回加密密码。

问题是,目前我正在使用的SecretKey存储在Java类的src中。对我而言,这似乎是冒险的做法所以我正试图找到一种方法来安全地存储我的SecretKey。

做了一些研究,我找到了Java KeyStore类,但我不完全确定这是否是我需要的。另外,如果这是我需要的,你们可以指出我如何实现它的方向,更重要的是,它是如何工作的?

由于

编辑:从进行大量的思考/阅读看来,似乎确实没有一个很好的解决方案,只要你的主服务器是安全的,我的实际上就不需要解决方案了,所以它不是一个问题。

感谢您的回复! :)

2 个答案:

答案 0 :(得分:1)

密码应使用单向散列函数存储,以便系统避免此问题。见https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet

答案 1 :(得分:0)

如果您正在谈论加密密钥,那么就没有安全的方法可以安全地将该密钥存储在JavaScript中。我猜你正在谈论的存储是浏览器的本地存储,这只不过是浏览器端的持久性cookie。 使用chrome WebInspector或Firefox Firebug的每个人都可以轻松地读取他正在访问的任何页面的商店。此外,你必须通过JavaScript将它保存在这个商店中,并且每个人都可以在浏览器中阅读你的源代码,它更加明显。

安全地做这些事情的唯一可能性是服务器端,就像PHP一样。如果您想要互动行为的感觉,可以在客户端使用AJAX与后端进行交互。

编辑: 啊,我想你在后端谈论Java时你错了吗?如果是,我认为当您在已编译的源中硬编码密钥时没有问题???如果你想将它存储在其他地方而且害怕有人使用它,你可以在使用它进行密钥生成之前在应用程序中加盐并哈希(当然盐是硬编码的)?