我有一个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()
函数内作为变量不起作用。
答案 0 :(得分:6)
如果您最大的风险是打开脚本的人,请不要在脚本中存储密码。无论您使用什么算法来解密存储在脚本中的加密密码,未经授权的用户都可以通过打开脚本来解决并应用它。
此时您有几个选择
getpass.getpass
功能让授权用户在提示符下输入密码。这样,您就不必将它存储在任何地方。这不能直接在非交互式脚本中使用,但您可以将Python脚本包装在管道密码的另一个脚本中。使用正确的权限,这大致相当于选项#1。