[問題] 程式如何看不見?

看板Python作者 (思辨成魔)時間8年前 (2017/01/29 14:39), 8年前編輯推噓2(2013)
留言15則, 7人參與, 最新討論串1/1
老頭初心者問一下 怎麼讓程式內容看不見 然後可以執行? 打算在程式內寫入密碼 被看見好像就沒意義了 另外再加問一個問題 我的入門書是 碁峰的精通Python 3程式設計 這本 作者Mark Summerfield說 區域變數通常都會在前面加兩個_ 來表示 全域變數通常不加 以資區別 最好養成習慣 讓其他python使用者容易區別 可是我在網路或其他中文書都沒有看到別人這樣特別區別 是不是○○有○○的玩法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.138.144.31 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1485671941.A.537.html

01/29 14:41, , 1F
加密
01/29 14:41, 1F
謝謝 我找到方向 如果把密碼用base64.encodestring先編碼 再拆成幾個部位 回頭組合 再用base64.decodestring解碼 再加判斷邏輯 然後程式再python -m py_compile 檔案.py 如何? 不過我不了解網路上所說2.5版的pyc文件,2.4版本的 python是無法運行的意思 3之後的版本會這樣嗎? ex. 3.3版編的 3.5 3.6 ...不能運行之類 單純是不想讓人看見密碼 但沒有特意要卡版本

01/29 15:02, , 2F
印象中書上是說只加一個底線做為區域變數耶?
01/29 15:02, 2F

01/29 15:03, , 3F
前後雙底線則是 python 內建的 class method 慣例
01/29 15:03, 3F

01/29 15:47, , 4F
雙底線有特殊意義,你建一個有雙底線變數的class用dir看看
01/29 15:47, 4F

01/29 17:15, , 5F
雙底線屬性在實體建立時名稱會被冠有_(class_name)前墜
01/29 17:15, 5F
謝謝 我再回頭看看 class我還是沒有搞得很懂 ※ 編輯: JokePtt (101.138.144.31), 01/29/2017 17:46:11

01/29 18:01, , 6F
你可以把密碼hash起來,然後輸入密碼時比對hash
01/29 18:01, 6F

01/29 20:11, , 7F
用 py_compile 編譯成 pyc,仍有可能被 depython 還原
01/29 20:11, 7F

01/29 20:14, , 8F
若在意可考慮對 bytecode 再加花指令,干擾反編譯運作
01/29 20:14, 8F

01/29 20:20, , 9F
Python 直譯器會看 .pyc 的檔頭 magic 欄位來判斷版本
01/29 20:20, 9F

01/29 20:21, , 10F
有興趣研究細節可以從這篇開始 https://goo.gl/CP9IgU
01/29 20:21, 10F

01/29 21:20, , 11F
如果是不想被看見密碼, 唯一的方法是不要把密碼放在程式
01/29 21:20, 11F

01/29 21:20, , 12F
你做的任何加密都可以非常輕易地被破解, 完全沒用
01/29 21:20, 12F

01/29 21:21, , 13F
所以請先說說看你為什麼需要把密碼放在程式裡
01/29 21:21, 13F
其實 我沒什麼程式底 會寫也只是打算用來讓投資方面更好用罷了 之所以會介意 是通常密碼都是跟個人的生活經驗 資訊相連結 比較好記 設定也只是萬一普通人路過 別亂動翻到我用的密碼 或者因交情要給某人 設一段他的密碼 附一段時間限時 就很直覺想寫進去程式然後再讓他不那麼容易辨識 倒不是要做什麼了不起的商業軟體 生活上遇到會反破解的人可能不多吧? 也只是想到這樣

01/29 22:54, , 14F
樓上說得好,邏輯和資料分離才是根本之道
01/29 22:54, 14F

01/30 00:27, , 15F
密碼一般會放在 config 檔
01/30 00:27, 15F
※ 編輯: JokePtt (101.139.148.17), 01/30/2017 00:44:03
文章代碼(AID): #1OZOu5Kt (Python)
文章代碼(AID): #1OZOu5Kt (Python)