Cython是属于PYTHON的超集,他⾸先会将PYTHON代码转化成C语⾔代码,然后通过c编译器⽣成可执⾏⽂件。优势:资源丰富,适合快速开发。翻译成C后速度⽐较快,在windows环境中⽤cython加密后的⽂件后缀是pyd⽂件,在linux环境中加密后的问题后缀是so⽂件,下⾯以linux环境作为演⽰
环境准备
系统环境:centos 7
Python版本:python3.x
需要的第三⽅包:cython
加密代码部分
encryption.py
import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize(["Jruing.py"])) # 列表中是要加密的⽂件名
要加密的代码部分
Jruing.py
def hello_world():
print("hello world")
将以上代码保存为encryption.py,在命令⾏中输⼊python encryption.py build_ext,它会在encryption.py这个⽂件的当前路径下⽣成build⽂件夹,build/lib-*/Jruing-*.so (“*”部分代表的是Python版本等⼀系列信息,这个不重要,windows环境会在同样的⽬录下⽣成Jruing-*.pyd⽂件),我们可以把这个so⽂件直接重命名为Jruing.so
调⽤加密后的⽂件中的函数
我们进⼊到so⽂件所在的⽬录,编写⼀个调⽤hello_world的程序
from Jruing import hello_world # Jruing为so⽂件的⽂件名
hello_world()
加密Flask Web服务
flask ⽂件⼀般会创建⼀个app对象,它启动也是通过这个app对象去启动的,直接加密会加密成功,但是执⾏会出现问题,我们可以在调⽤⽂件中导⼊app对象,然后app.run()启动就可以了,具体操作如下
⼀个flask web服务Demo
flask_demo.py
from flask import Flask
app = Flask(__name__)
@ute('/',methods=['GET'])
def root():
return "hello world"
if __name__ == '__main__':
app.run(host='127.0.0.1',port=5000)
在加密之前我们把它改为
flask_demo_test.py
from flask import Flask
app = Flask(__name__)
@ute('/',methods=['GET'])
def root():
return "hello world"
怎么对文件夹加密⽤上⾯提到的⽅法对flask_demo_test.py⽂件进⾏加密
调⽤flask_demo_test.py启动服务
from flask_demo_test import app
app.run(host='127.0.0.1',port=5000)
这样就好了
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
发布评论