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

作者:Jruing 时间:2023-07-21 19:33:40 

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)

这样就好了!!!!

来源:https://www.cnblogs.com/jruing/p/13253361.html

标签:Cython,python,代码,加密
0
投稿

猜你喜欢

  • 基于Bootstrap模态对话框只加载一次 remote 数据的解决方法

    2024-04-27 15:24:18
  • Python转换itertools.chain对象为数组的方法

    2022-10-27 08:38:16
  • SqlServer中的日期与时间函数

    2011-11-03 17:12:34
  • JS页内查找关键词的高亮显示

    2013-07-18 21:13:54
  • BP神经网络原理及Python实现代码

    2022-09-04 21:12:24
  • MySQL 定时器EVENT学习

    2010-10-14 13:55:00
  • matplotlib绘制动画代码示例

    2021-09-09 18:02:15
  • 如何使用Python抓取网页tag操作

    2023-11-11 12:15:24
  • 关于微信小程序使用echarts/数据刷新重新渲染/图层遮挡问题

    2024-05-22 10:39:44
  • Python列表对象实现原理详解

    2022-09-07 10:24:58
  • BootStrap 页签切换失效的解决方法

    2024-04-19 09:52:28
  • PHP抓取及分析网页的方法详解

    2023-11-24 08:17:10
  • 浅谈python写入大量文件的问题

    2021-12-07 00:44:00
  • python 统计文件中的字符串数目示例

    2022-05-14 11:29:34
  • python绘图pyecharts+pandas的使用详解

    2022-02-03 18:00:44
  • 利用python实现汉诺塔游戏

    2021-02-19 03:03:45
  • Python 字符串去除空格的五种方法

    2023-01-15 08:23:56
  • Python读取hdf文件并转化为tiff格式输出

    2021-02-22 18:59:56
  • Python3爬虫里关于识别微博宫格验证码的知识点详解

    2022-01-05 11:44:06
  • Python实现的基数排序算法原理与用法实例分析

    2023-11-11 10:15:12
  • asp之家 网络编程 m.aspxhome.com