python算法加密—pyarmor&docker

本文介绍了如何使用pyarmor工具对Python代码进行加密,并结合Docker确保在容器启动时自动加密并删除未加密文件。详细步骤包括加密脚本、运行加密脚本、发布加密脚本,以及通过Dockerfile和相关函数实现加密过程。
摘要由CSDN通过智能技术生成

😊作者简介:大家好我是hellobigorange,大家可以叫我大橙子
📃个人主页hellobigorange的个人主页
📰如果觉得博主的文章还不错的话,请👍三连支持一下博主哦🤞
💖本文摘要:本文主要实现了,在容器启动时,自动生成加密文件,并删除所有未加密的.py文件,以及将无法加密的非.py文件移到dist里的同名文件夹下,可以让加密算法正常调用。
在这里插入图片描述
官方手册pyarmor官方手册

为了避免代码泄露的风险,我们往往需要对代码进行加密,PyArmor 是一个用于加密和保护 Python 脚本的工具。它能够在运行时刻保护 Python脚本的二进制代码不被泄露,设置加密后Python源代码的有效期限,绑 定加密后的Python源代码到硬盘、网卡等硬件设备。

一 基础配置

  • 安装

pip install pyarmor

  • 更新到最新版本

pip install --upgrade pyarmor

二 基本语法

2.1 加密 Python 脚本

a) 单个包,只有单级目录
使用命令obfuscate来加密 python 脚本。在最简单的情况下,最常用的一种情况是切换到主函数脚本algorithm.py所在的路径,然后执行:

pyarmor obfuscate algorithm.py
在这里插入图片描述

PyArmor 会加密 algorithm.py 和相同目录下面的所有 *.py 文件:

  • 创建输出子目录 dist
  • 生成加密的主脚本 algorithm.py 保存在输出目录 dist
  • 加密相同目录下其他所有 *.py 文件,保存到输出目录 dist
  • 生成运行加密脚本所需要的全部辅助文件,保存到输出目录 dist
    PICPICKSHAPE

b) 若有多个算法包、多级目录
默认情况下,只有和主脚本相同目录的其他 *.py 会被同时加密。如果想递归加密 子目录下的所有 *.py 文件,使用下面的命令:

pyarmor obfuscate --recursive algorithm.py

🙇注意:只能加密.py文件,如果算法需要调用.csv.json文件,直接拷贝到dist文件夹对应的包里就可以了
在这里插入图片描述

2.2 运行加密脚本

运行加密脚本不需要安装pyarmo

cd dist
python algorithm.py

2.3 发布加密脚本

执行到这一步已经可以发布加密脚本了,发布加密脚本只需要把输出路径的所有dist文件拷贝即可。

三、pyarmor&docker

由于pyarmo加密的脚本对运行环境比较敏感,因此我们最好把整个算法打包成镜像,在启动容器的时候进行加密,并删除所有的未加密文件,留下dist文件

注:上文也说过,pyarmo只能对.py文件加密,对于.csv.json文件是无法加密的,自然在生成的dist包里也没有非.py后缀的文件,因此我们需要将.csv等文件移入到dist里,不然运行dist里的算法时会报错。

  • 由于我本地是windows系统,所以生成.dll后缀文件,直接把dist制作成镜像会报错,因为容器运行需要.so文件,因此考虑在容器中运行时加密,生成.so,再自动移除未加密文键,只留下dist及所需的非.py后缀文件

  • 其实也可以用linux系统直接本地运行生成dist,但是不要忘记将非.py后缀的文件及文件夹复制进去。

评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellobigorange

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值