Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中存储密码的最佳实践。Xml,源代码还是其他?_Ruby_Xml_Passwords_Base64 - Fatal编程技术网

在Ruby中存储密码的最佳实践。Xml,源代码还是其他?

在Ruby中存储密码的最佳实践。Xml,源代码还是其他?,ruby,xml,passwords,base64,Ruby,Xml,Passwords,Base64,我有一个发送电子邮件的Ruby脚本,但我需要存储smtp帐户凭据才能发送电子邮件。目前,我有一个存储密码的xml文件,但是我在xml中使用Bas64编码密码,然后在脚本中解码。我还将脚本打包成了一个.exe 我正在尝试找出存储凭据的最佳做法。我应该将密码存储在实际脚本中而不是xml中吗?有没有其他我应该使用的方法?脚本不会在局域网外公开的服务器上运行,但我仍然希望确保密码尽可能安全。Base64不是加密,任何人都可以将其反转。因此,如果您的程序包含密钥并且本身可读,那么使用实际加密将不会有帮助。

我有一个发送电子邮件的Ruby脚本,但我需要存储smtp帐户凭据才能发送电子邮件。目前,我有一个存储密码的xml文件,但是我在xml中使用Bas64编码密码,然后在脚本中解码。我还将脚本打包成了一个.exe


我正在尝试找出存储凭据的最佳做法。我应该将密码存储在实际脚本中而不是xml中吗?有没有其他我应该使用的方法?脚本不会在局域网外公开的服务器上运行,但我仍然希望确保密码尽可能安全。

Base64不是加密,任何人都可以将其反转。因此,如果您的程序包含密钥并且本身可读,那么使用实际加密将不会有帮助。如果需要编写使用密码的程序,但不希望程序用户可以访问密码,则需要使用操作系统和代码

  • 将密码与代码放在一个单独的文件中
  • 使用操作系统的文件访问控制,确保只有被允许使用密码读取文件的人才能读取文件。这与可以运行该程序的人员的列表不同,可能只是管理员
  • 将伪用户添加到脚本的操作系统中。这不是一个真实的人,而是一个只有程序才能运行的帐户。使用密码将此用户添加到文件的访问控制中,以便其可以读取文件。确保此用户不能以交互方式登录,例如获取shell提示或桌面会话
  • 使要运行程序的人能够“作为”脚本的伪用户运行程序。在Windows中,这可以通过“runas”命令完成。在Linux上,您可以使用“sudo”