看板 Python 關於我們 聯絡資訊
老頭初心者問一下 怎麼讓程式內容看不見 然後可以執行? 打算在程式內寫入密碼 被看見好像就沒意義了 另外再加問一個問題 我的入門書是 碁峰的精通Python 3程式設計 這本 作者Mark Summerfield說 區域變數通常都會在前面加兩個_ 來表示 全域變數通常不加 以資區別 最好養成習慣 讓其他python使用者容易區別 可是我在網路或其他中文書都沒有看到別人這樣特別區別 是不是○○有○○的玩法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.138.144.31 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1485671941.A.537.html
mikapauli: 加密 01/29 14:41
謝謝 我找到方向 如果把密碼用base64.encodestring先編碼 再拆成幾個部位 回頭組合 再用base64.decodestring解碼 再加判斷邏輯 然後程式再python -m py_compile 檔案.py 如何? 不過我不了解網路上所說2.5版的pyc文件,2.4版本的 python是無法運行的意思 3之後的版本會這樣嗎? ex. 3.3版編的 3.5 3.6 ...不能運行之類 單純是不想讓人看見密碼 但沒有特意要卡版本
s860134: 印象中書上是說只加一個底線做為區域變數耶? 01/29 15:02
s860134: 前後雙底線則是 python 內建的 class method 慣例 01/29 15:03
os653: 雙底線有特殊意義,你建一個有雙底線變數的class用dir看看 01/29 15:47
s860134: 雙底線屬性在實體建立時名稱會被冠有_(class_name)前墜 01/29 17:15
謝謝 我再回頭看看 class我還是沒有搞得很懂 ※ 編輯: JokePtt (101.138.144.31), 01/29/2017 17:46:11
IAMPF: 你可以把密碼hash起來,然後輸入密碼時比對hash 01/29 18:01
LiloHuang: 用 py_compile 編譯成 pyc,仍有可能被 depython 還原 01/29 20:11
LiloHuang: 若在意可考慮對 bytecode 再加花指令,干擾反編譯運作 01/29 20:14
LiloHuang: Python 直譯器會看 .pyc 的檔頭 magic 欄位來判斷版本 01/29 20:20
LiloHuang: 有興趣研究細節可以從這篇開始 https://goo.gl/CP9IgU 01/29 20:21
uranusjr: 如果是不想被看見密碼, 唯一的方法是不要把密碼放在程式 01/29 21:20
uranusjr: 你做的任何加密都可以非常輕易地被破解, 完全沒用 01/29 21:20
uranusjr: 所以請先說說看你為什麼需要把密碼放在程式裡 01/29 21:21
其實 我沒什麼程式底 會寫也只是打算用來讓投資方面更好用罷了 之所以會介意 是通常密碼都是跟個人的生活經驗 資訊相連結 比較好記 設定也只是萬一普通人路過 別亂動翻到我用的密碼 或者因交情要給某人 設一段他的密碼 附一段時間限時 就很直覺想寫進去程式然後再讓他不那麼容易辨識 倒不是要做什麼了不起的商業軟體 生活上遇到會反破解的人可能不多吧? 也只是想到這樣
s860134: 樓上說得好,邏輯和資料分離才是根本之道 01/29 22:54
zerof: 密碼一般會放在 config 檔 01/30 00:27
※ 編輯: JokePtt (101.139.148.17), 01/30/2017 00:44:03