如何在python脚本中保护纯文本密码

时间:2019-07-15 12:04:26

标签: python macos

我有一个Python脚本,其中包含用于将Mac绑定到AD的纯文本密码。 我需要将此脚本部署到几台Mac。

如何保护纯文本密码,这样没人能看到密码?

我不想使用base64,我需要比base64强的东西。

2 个答案:

答案 0 :(得分:-1)

尝试将密码存储在单独的Python脚本中的变量中。

pass.py

password = 'PASSWORD'

分别从此脚本中导入变量。

main.py

from pass import password

这将创建一个名为pass.pyc的字节码文件。现在,您可以删除pass.py并继续使用pass.pyc,这是人类不易理解的,而且反编译起来要困难得多。

编辑:如果有人可以访问您的源代码,他们仍然可以在打印语句中看到密码!

编辑2:正如贾科莫·阿尔泽塔(Giacomo Alzetta)所评论的那样,这里的密码仍然是人类可读的,但是这里归结为“攻击模型”。如果有人真的想要,他们仍然可以四处寻找。其他替代方法是OpenSSL中可用的加密算法。对称密钥算法可能对您仍然没有用,因为您可能必须将加密密钥存储在源代码中。非对称密钥算法可能会起作用。

答案 1 :(得分:-1)

您可以使用编码和解码功能。

def encode(key, clear):
    enc = []
    for i in range(len(clear)):
        key_c = key[i % len(key)]
        enc_c = chr((ord(clear[i]) + ord(key_c)) % 256)
        enc.append(enc_c)
    return base64.urlsafe_b64encode("".join(enc).encode()).decode()

def decode(key, enc):
    dec = []
    enc = base64.urlsafe_b64decode(enc).decode()
    for i in range(len(enc)):
        key_c = key[i % len(key)]
        dec_c = chr((256 + ord(enc[i]) - ord(key_c)) % 256)
        dec.append(dec_c)
    return "".join(dec)

用法:encode("mykey", "password")

(您需要导入base64)

如果您想要高安全性的密码,我编写了一个脚本,但是我尝试对字符串进行解码,但是我做不到。