在python脚本中加密密码

时间:2017-05-17 20:41:04

标签: python encryption

我有一个python脚本,我使用用户名和密码在服务器上使用rest api执行操作(获取/删除)。

我想加密脚本中使用的密码,以便打开脚本的人无法看到明文密码。

req = requests.delete(url, stream=True, headers=headers, verify=False,
                      auth=('Administrator','password'))

第二个问题是,如果我为xor加密用于临时目的,如下面

passwd = base64.b64decode("cGFzc3dvcmQ=")

req = requests.delete(url, stream=True, headers=headers, verify=False,
                      auth=('Administrator',passwd))

passwd在auth()函数内作为变量不起作用。

1 个答案:

答案 0 :(得分:6)

如果您最大的风险是打开脚本的人,请不要在脚本中存储密码。无论您使用什么算法来解密存储在脚本中的加密密码,未经授权的用户都可以通过打开脚本来解决并应用它。

此时您有几个选择

  1. 将密码存储在具有相应权限的文件中,以便组外的任何人都无法打开密码。此时您可能不需要加密密码,因为读取您脚本的任何人都会立即知道如何解密它。
  2. 使用getpass.getpass功能让授权用户在提示符下输入密码。这样,您就不必将它存储在任何地方。这不能直接在非交互式脚本中使用,但您可以将Python脚本包装在管道密码的另一个脚本中。使用正确的权限,这大致相当于选项#1。