如何使用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生成二维码的实例详解
Oct 29 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
Python占用的内存优化教程
Jul 28 Python
python 公共方法汇总解析
Sep 16 Python
Python如何将函数值赋给变量
Apr 28 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
Python selenium模块实现定位过程解析
Jul 09 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
浅谈Python 中的复数问题
May 19 Python
Python 如何实现文件自动去重
Jun 02 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php pki加密技术(openssl)详解
2013/07/01 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
javascript document.referrer 用法
2009/04/30 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
Python+微信接口实现运维报警
2016/08/27 Python
python去除扩展名的实例讲解
2018/04/23 Python
linux安装python修改默认python版本方法
2019/03/31 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
日语专业推荐信
2013/11/12 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
骨干教师培训感言
2014/01/16 职场文书
员工薪酬福利制度
2014/01/17 职场文书
简单的辞职信范文
2014/01/18 职场文书
会议通知范文
2015/04/15 职场文书
写给女朋友的保证书
2015/05/09 职场文书
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android