加密PowerShell密码

时间:2011-03-15 14:39:20

标签: security encryption powershell passwords

我有一个连接到MySQL数据库的powershell脚本 - 当然这个连接需要密码,我想以某种方式加密密码,而不是将密码存储为纯文本。

我已经查看了securestring方法,将密码输出到文件中,但我不认为它们会起作用,因为加密的密码只能由原始用户解密,并且脚本将分发到整个网络的机器数量。

对任何其他方法有用的建议吗?

由于

2 个答案:

答案 0 :(得分:4)

如果要将脚本分发到网络上的许多计算机上,那么这些用户将可以访问您的脚本将要使用的每个凭据,而且无法绕过它。

如果有任何私人的每用户数据,您可以做两件事:

  1. 为您的程序的每个用户在数据库中创建一个新的用户帐户,具有限制权限,允许他们只执行您希望他们执行的操作,仅此而已
  2. 有一个代理服务器,可以对它们进行身份验证并以其名称连接到数据库(这是大多数网站的工作方式)
  3. 如果所有数据都是公开的和只读的,那么您可以:

    1. 在数据库中创建用户帐户以进行只读访问,并在程序的所有分布式副本中使用其凭据
    2. 有一个代理服务器,它不会对用户进行身份验证,但会连接到数据库,而不是将其公开给公众
    3. 对于每个具有MySQL安全历史记录的数据库,通常建议使用这些选项中的每一个的第2个,但是对于像CouchDB这样的数据库,建议使用这两个选项中的第1个。

      切勿使用您不希望用户使用的程序分发任何凭据。

答案 1 :(得分:0)

我已使用此PowerShell库http://lunaticexperiments.wordpress.com/2009/10/23/powershell-string-encryption-and-gpg/加密Oracle和Informix密码。

这是一个例子

    #Source Encryption Functions
. ./Library-StringCrypto.ps1
#encrypt string using passphrase
$encrypt = Write-EncryptedString $connString "4#&7yaoff"
#Show encrypted string
$encrypt
#Decrypt string
Read-EncryptedString $encrypt "4#&7yaoff"