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