如何使用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编程中@property装饰器的用法
Jun 20 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
python识别验证码的思路及解决方案
Sep 13 Python
python os.listdir()乱码解决方案
Jan 31 Python
python自动生成sql语句的脚本
Feb 24 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
Python机器学习之基础概述
May 19 Python
Python进行区间取值案例讲解
Aug 02 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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
PHP中如何调用webservice的实例参考
2013/04/25 PHP
解析yii数据库的增删查改
2013/06/20 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
浅谈php扩展imagick
2014/06/02 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
js验证表单大全
2006/11/25 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
详解vue后台系统登录态管理
2019/04/02 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
python数据化运营的重要意义
2019/11/25 Python
python实现实时视频流播放代码实例
2020/01/11 Python
python实现微信打飞机游戏
2020/03/24 Python
交通事故检查书范文
2014/01/30 职场文书
事假请假条范文
2014/04/11 职场文书
我的理想演讲稿
2014/04/30 职场文书
司法助理专业自荐书
2014/06/13 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python