如何使用Cython對(duì)python代碼進(jìn)行加密
Cython是屬于PYTHON的超集,他首先會(huì)將PYTHON代碼轉(zhuǎn)化成C語(yǔ)言代碼,然后通過(guò)c編譯器生成可執(zhí)行文件。優(yōu)勢(shì):資源豐富,適合快速開(kāi)發(fā)。翻譯成C后速度比較快,在windows環(huán)境中用cython加密后的文件后綴是pyd文件,在linux環(huán)境中加密后的問(wèn)題后綴是so文件,下面以linux環(huán)境作為演示
環(huán)境準(zhǔn)備
系統(tǒng)環(huán)境:centos 7 Python版本:python3.x 需要的第三方包:cython加密代碼部分
encryption.py
from distutils.core import setupfrom Cython.Build import cythonizesetup(ext_modules = cythonize(['Jruing.py'])) # 列表中是要加密的文件名
要加密的代碼部分
Jruing.py
def hello_world(): print('hello world!!!')
將以上代碼保存為encryption.py,在命令行中輸入python encryption.py build_ext,它會(huì)在encryption.py這個(gè)文件的當(dāng)前路徑下生成build文件夾,build/lib-*/Jruing-*.so (“*”部分代表的是Python版本等一系列信息,這個(gè)不重要,windows環(huán)境會(huì)在同樣的目錄下生成Jruing-*.pyd文件),我們可以把這個(gè)so文件直接重命名為Jruing.so
調(diào)用加密后的文件中的函數(shù)
我們進(jìn)入到so文件所在的目錄,編寫(xiě)一個(gè)調(diào)用hello_world的程序
from Jruing import hello_world # Jruing為so文件的文件名hello_world()
加密Flask Web服務(wù)
flask 文件一般會(huì)創(chuàng)建一個(gè)app對(duì)象,它啟動(dòng)也是通過(guò)這個(gè)app對(duì)象去啟動(dòng)的,直接加密會(huì)加密成功,但是執(zhí)行會(huì)出現(xiàn)問(wèn)題,我們可以在調(diào)用文件中導(dǎo)入app對(duì)象,然后app.run()啟動(dòng)就可以了,具體操作如下
一個(gè)flask web服務(wù)Demo
flask_demo.py
from flask import Flaskapp = Flask(__name__)@app.route(’/’,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 Flaskapp = Flask(__name__)@app.route(’/’,methods=[’GET’])def root(): return 'hello world'
用上面提到的方法對(duì)flask_demo_test.py文件進(jìn)行加密
調(diào)用flask_demo_test.py啟動(dòng)服務(wù)
from flask_demo_test import appapp.run(host=’127.0.0.1’,port=5000)
這樣就好了!!!!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python如何批量生成和調(diào)用變量2. 通過(guò)CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫(huà)特效3. .net如何優(yōu)雅的使用EFCore實(shí)例詳解4. Python獲取B站粉絲數(shù)的示例代碼5. ASP.Net Core對(duì)USB攝像頭進(jìn)行截圖6. python基礎(chǔ)之匿名函數(shù)詳解7. ASP.NET MVC實(shí)現(xiàn)橫向展示購(gòu)物車8. ajax動(dòng)態(tài)加載json數(shù)據(jù)并詳細(xì)解析9. python b站視頻下載的五種版本10. ASP.Net Core(C#)創(chuàng)建Web站點(diǎn)的實(shí)現(xiàn)
