Date: 2018.6.17 端午 1、参考 http://help.sense.com.cn/?p=165 2、python下编译py成pyc和pyo (文件加密) 将python文件.py编译成pyc二进制文件: python -m py_file.py 或者通过脚本运行: import py_com
Date: 2018.6.17 端午
1、参考
http://help.sense.com.cn/?p=165
2、python下编译py成pyc和pyo (文件加密)
将python文件.py编译成pyc二进制文件:
python -m py_file.py或者通过脚本运行:
import py_compile ##单个文件编译import compileall ##多个文件编译
py_compile.compile('path') ##path是包括.py文件名的路径
将python文件编译成pyo二进制文件:
python -O -m py_file.py什么是pyc文件?
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。
注意事项:pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。
什么是pyo文件?
pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件
什么是pyd文件?
pyd是python的动态链接库。
3、将Python文件转成exe封装(文件加密)
参考:
4、采用hashlib或pycrypto模块进行文本加密
hashlib模块:
import hashlibsha1 = hashlib.sha1('文本内容') #加密
osv=sha1.hexdigest()
print(osv)
bx=bytes(osv,encoding='utf-8') #转换类型
with open('1.txt','wb') as f: #以二进制写类型打开
f.write(bx) #写入文件
get_sha1('')
pycrypto模块:
from Crypto.Cipher import AESobj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
message = "The answer is no"
ciphertext = obj.encrypt(message)
>>> ciphertext
'\xd6\x83\x8dd!VT\x92\xaa`A\x05\xe0\x9b\x8b\xf1'
>>> obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
>>> obj2.decrypt(ciphertext)
'The answer is no'