作者JokePtt (思辨成魔)
看板Python
标题[问题] 程式如何看不见?
时间Sun Jan 29 14:38:56 2017
老头初心者问一下
怎麽让程式内容看不见 然後可以执行?
打算在程式内写入密码
被看见好像就没意义了
另外再加问一个问题
我的入门书是 碁峰的精通Python 3程式设计 这本
作者Mark Summerfield说 区域变数通常都会在前面加两个_ 来表示
全域变数通常不加 以资区别 最好养成习惯 让其他python使用者容易区别
可是我在网路或其他中文书都没有看到别人这样特别区别
是不是○○有○○的玩法?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.138.144.31
※ 文章网址: https://webptt.com/cn.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