我有一个Python脚本,其中包含用于将Mac绑定到AD的纯文本密码。 我需要将此脚本部署到几台Mac。
如何保护纯文本密码,这样没人能看到密码?
我不想使用base64
,我需要比base64
强的东西。
答案 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)
如果您想要高安全性的密码,我编写了一个脚本,但是我尝试对字符串进行解码,但是我做不到。