安全存储私钥

时间:2014-05-08 08:27:21

标签: encryption passwords private-key

我们希望存储我们的FTP,网站,数据库等密码。您可以将我们的软件与keypass进行比较,但我们想要自己的解决方案。 密码将被加密并存储在数据库中。我们无法使用校验和,因为我们需要以明文显示密码。

问题在于我们找不到存储私钥的好方法。如果它写在代码中,你可以很容易地得到它。如果它隐藏在dll中,则无法有效隐藏它,因为机器必须使用它。我们软件的所有用户都可以完全访问源代码,带有编写密码的数据库,并且是他们PC上的管理员,因此他们可以在使用时阅读代码。

我们考虑将私钥存储在一个单独的数据库中,该数据库可以使用另一个密码访问,但无论如何都会使用该密钥。

所以,我们没有到达任何地方。我们知道没有100%的保存解决方案,但必须有一个几乎安全的解决方案。

1 个答案:

答案 0 :(得分:0)

首先,我建议不要编写自己的解决方案,有很多方法可以做错,而且你需要投入大量时间来了解所有重点。

您无需在任何地方存储密钥,只需使用密钥加密数据然后忘记密钥即可。对于解密,您可以使用输入的密钥,如果密钥正确则返回数据,否则您将获得加扰内容。

由于用户不喜欢键入强密钥和优先密码,因此您应该使用密钥派生函数,如BCrypt或PBKDF2(基于密码的密钥派生函数-2),它可以将密码转换为密钥