如何使用Cython对python代码进行加密


Posted in Python onJuly 08, 2020

Cython是属于PYTHON的超集,他首先会将PYTHON代码转化成C语言代码,然后通过c编译器生成可执行文件。优势:资源丰富,适合快速开发。翻译成C后速度比较快,在windows环境中用cython加密后的文件后缀是pyd文件,在linux环境中加密后的问题后缀是so文件,下面以linux环境作为演示

环境准备

  • 系统环境:centos 7
  • Python版本:python3.x
  • 需要的第三方包:cython

加密代码部分

encryption.py

from distutils.core 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__)

@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 Flask
app = Flask(__name__)

@app.route('/',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)

这样就好了!!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的函数嵌套的使用方法
Jan 24 Python
python求crc32值的方法
Oct 05 Python
Python中的super用法详解
May 28 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
python如何让类支持比较运算
Mar 20 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
python 实现交换两个列表元素的位置示例
Jun 26 Python
python中下标和切片的使用方法解析
Aug 27 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
python中的错误如何查看
Jul 08 #Python
获取python运行输出的数据并解析存为dataFrame实例
Jul 07 #Python
利用keras使用神经网络预测销量操作
Jul 07 #Python
Python Mock模块原理及使用方法详解
Jul 07 #Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 #Python
PyTorch: Softmax多分类实战操作
Jul 07 #Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 #Python
You might like
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
jQuery基础框架浅入剖析
2012/12/27 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
JS高级运动实例分析
2016/12/20 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
利用python写个下载teahour音频的小脚本
2017/05/08 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
给医务人员表扬信
2014/01/12 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
设计专业自荐信
2014/06/19 职场文书
单身申明具结书
2015/02/26 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
python使用glob检索文件的操作
2021/05/20 Python
MySQL派生表联表查询实战过程
2022/03/20 MySQL