【Python】python文件或文本加密(4种方法)(Python将文本文件加密后输出)

网友投稿 886 2022-09-05


【Python】python文件或文本加密(4种方法)(Python将文本文件加密后输出)

Date: 2018.6.17 端午

1、参考

​​(文件加密)

将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'


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java本地缓存工具之LoadingCache的使用详解
下一篇:【Python】删除非空目录的方法shutil.rmtree()以及空目录的方法os.rmdir()
相关文章

 发表评论

暂时没有评论,来抢沙发吧~