簡體   English   中英

如何在python腳本中保護純文本密碼

[英]How to secure plain text Password in python script

我有一個Python腳本,其中包含用於將Mac綁定到AD的純文本密碼。 我需要將此腳本部署到幾台Mac。

如何保護純文本密碼,這樣沒人能看到密碼?

我不想使用base64 ,我需要比base64更強的東西。

嘗試將密碼存儲在單獨的Python腳本中的變量中。

pass.py

password = 'PASSWORD'

分別從此腳本導入變量。

main.py

from pass import password

這將創建一個名為pass.pyc的字節碼文件。 現在,您可以刪除pass.py並繼續使用pass.pyc,這是人類不易理解的,而且反編譯起來要困難得多。

編輯:如果有人可以訪問您的源代碼,他們仍然可以通過打印語句看到密碼!

編輯2:正如賈科莫·阿爾澤塔(Giacomo Alzetta)所評論的那樣,這里的密碼仍然是人類可讀的,但是這里歸結為“攻擊模型”。 如果有人真的想要,他們仍然可以四處尋找。 其他替代方法是OpenSSL中可用的加密算法。 對稱密鑰算法可能對您仍然沒有用,因為您可能必須將加密密鑰存儲在源代碼中。 非對稱密鑰算法可能會起作用。

您可以使用編碼和解碼功能。

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)

如果您想要高安全性的密碼,我編碼了一個腳本,但是我嘗試對字符串進行解碼,但我做不到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM