如何让我部署的应用程序安全地加密密码,然后在以后解密以供自动化使用

时间:2011-08-04 18:12:32

标签: security encryption hash password-protection

这个问题之前已经得到了回答,但关键的区别可能是我希望以后能够解密密码,这是针对部署的应用程序,其中有人可以处理代码程序集(而不是防火墙后面的网站)

基本上,我希望我的应用程序在部署时接受用户密码。我希望将该用户密码存储在某处(加密),然后再将其解密以用于自动化例程。

我会做一些假设来简化事情。您可以假设内存中的密码是安全的(当它在内存中时)并且强大的哈希算法(随意命名最佳选项)就足够了。即便如此,什么会阻止某人反映我的代码并找到我用来解密密码的哈希键或技术(我甚至会将哈希键存储在代码中?)。我可能会混淆,但我的理解是它仍然可以阅读。另请注意,单向加密在这里还不够。我需要稍后解密并使用密码。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

要直接回答这个问题,如果您想要加密然后解密数据,那么您正在寻找非对称加密(不是散列,这是一个单向过程)。 OWASP Top 10 on Insecure Cryptographic Storage是一个很好的跳跃点,可以了解更多信息。

现在要间接回答你的问题,不要这样做!密码应该与强加密哈希函数一起存储,包括随机盐(你也会在OWASP链接中看到这一点)。如果您尝试将密码密文返回到纯文本文本,然后在冒充其他人的同时对其他服务进行身份验证,那么您就错过了问题的根本原因。您没有提供太多关于此的信息,但您似乎应该问的问题是您(安全地)如何对下游服务进行身份模拟和身份验证。