4

设想:

  • Web 应用程序(RoR 3.2)需要与远程 Web 服务(SOAP,使用 Savon gem)通信。
  • Web 服务需要用户名和密码。
  • 通信是 SOAP,流量是通过 VPN(SOAP 没有 SSL)。
  • 我需要存储远程 Web 服务管理员给我的密码。
  • Web 服务管理员要求我以安全的方式存储密码。
  • 当我的网络服务器调用网络服务时,我需要清楚地使用原始密码。
  • Bcrypt 是存储密码的最佳方式,但它是“一种方式”。
  • 我无法发送加密密码,我需要一种解密方法才能将其发送到 Web 服务。

这似乎是一个“鸡和蛋”的问题。

有没有办法安全地存储密码并能够解密它以用于自动化服务?

有什么提示吗?

4

2 回答 2

1

如果加密信息需要以纯文本形式发送,如何使用强可逆密码,这可能是 Web 服务管理员的意思。

在使用(例如)AES 加密进行加密之前,您可以添加其他信息作为盐(使用您熟知的任何内容,并且可以通过算法应用,例如名称)。
然后,您可以将加密密码存储在您选择的位置。

于 2012-12-08T12:21:55.150 回答
0

我会将此密码存储在环境变量中(纯文本,经过混淆处理,无关紧要),以避免将其放入 VCS。

还阅读将密码作为环境变量(而不是纯文本)存储在配置文件中是否安全?能够帮助。

于 2012-12-08T10:36:01.410 回答