当前位置: 首页 > news >正文

python脚本加密之pyarmor

继续上篇的代码加密,今天写下第二种方式pyarmor,反正就是很牛逼

1、特点

        代码加密与混淆:PyArmor 会对 Python 源代码编译后的字节码进行高强度加密,使其无法被标准反编译工具直接读取。此外,它还提供代码混淆功能,例如重命名函数、变量名(名称混淆)和控制流扁平化等,即使部分代码被解密,其逻辑也难以分析。

        灵活的授权管理:这是 PyArmor 的一大亮点。开发者可以生成许可证文件(license.lic),对加密脚本的使用进行精细控制。具体包括:

设置有效期:可以指定脚本在某个具体日期(如 2024-12-31)或一段时间后(如 30 天后)自动失效。

绑定硬件信息:可以将脚本绑定到特定设备的硬盘序列号、网卡 MAC 地址等硬件信息上,确保脚本只能在授权的机器上运行。 ○ 自定义绑定数据:支持绑定开发者自定义的字符串数据,可用于实现更复杂的授权逻辑,如绑定客户ID或用户名。

        跨平台支持:PyArmor 支持 Windows、Linux 和 macOS 等主流操作系统,并能兼容不同架构(如 x86_64, ARM)。需要注意的是,加密后的脚本依赖平台特定的 _pytransform动态库,因此分发时需要确保库与目标环境匹配。

2、原理

  • 加密期:PyArmor 并非直接加密原始的 .py源代码文件,而是对 Python 解释器将源代码编译后产生的字节码(.pyc文件)进行加密处理。

  • 运行时:不会在程序启动时将整个脚本的所有字节码一次性解密到内存中,而是采用“按需解密”的策略。当运行一个被加密的脚本时,只有当前即将被调用的特定函数或代码块的字节码会被动态解密并送入 Python 虚拟机执行,一旦执行完毕,这部分内存中的字节码会被重新加密

3、试用版和正式版

PyArmor默认安装的是试用版适合用于个人学习、功能测试和非商业项目的初步体验。 如果你需要将PyArmor用于商业软件保护、需要高级加密功能,或者希望对加密后的脚本进行有效的授权控制,那么购买相应的正式版许可是必要的。

4、使用

4.1、安装pyarmor

pip install pyarmor
pyarmor --version

可以看到我这个是试用版。

4.2打包项目

切换到项目的根目录

pyarmor gen -O dist -r .  

执行完成之后在当前项目的根目录生成dist文件夹

可以看到生成了具体的代码,可以正常执行

python can_sender_node

这里dist文件可以直接发布

5、打包脚本介绍

命令格式

pyarmor [options] <command> [command-options] <script or path>

command是核心操作,如 gen(生成加密脚本)或 obfuscate(混淆脚本),后跟具体的脚本或路径参数

5.1 生成单个文件

pyarmor gen .\changes.py

5.2 生成整个项目

pyarmor gen -O dist -r .  

5.3 生成脚本带时间

设置有效期(-e / --expired):可以为加密脚本设置一个过期时间,例如 -e "2024-12-31"或 -e "30"(表示30天后失效)。过期后脚本将无法运行。

pyarmor gen -O dist2 -e 30 .\changes.py 

5.4 生成绑定硬件设备

绑定硬件设备:可以将加密脚本绑定到特定的硬件设备上,确保脚本只能在授权的机器上运行。常用的绑定参数包括 --bind-disk(绑定硬盘序列号)、--bind-mac(绑定网卡MAC地址)等

pyarmor gen -O dist2 --restrict harddisk=00:16:3e:35:19:3d changes.py
pyarmor gen -O dist2 --restrict mac=00:16:3e:35:19:3d changes.py

● 如果版本是 8.x.x → 用新语法(--restrict harddisk=...) ● 如果版本是 7.x.x → 用旧语法(--bind-disk)

6、一些注意点

  • 只发布 dist文件夹,不安装 PyArmor,完全可以运行加密后的脚本 只需将 PyArmor 加密后生成的 dist目录(包含加密脚本、pyarmor_runtime辅助包和 _pytransform动态库)完整分发给用户即可。用户无需安装 PyArmor

  • 脚本和具体的python版本绑定

http://www.dtcms.com/a/467347.html

相关文章:

  • 省级荣誉+1!泛联新安入选湖南省2025年先进计算典型应用案例
  • 济南网站怎么做wordpress插件下载失败
  • 【多线程】忙等待/自旋(Busy Waiting/Spinning)
  • Google 智能体设计模式:人机协同(HITL)
  • 国家小城镇建设政策网站wordpress shortcode插件
  • 云霄县建设局网站投诉文案类的网站
  • 免费发布信息的网站平台常州建设企业网站
  • 凌哥seoseo黑帽技术工具
  • 经常修改网站的关键词好不好上海人才网站
  • Python :求解蓝桥杯2023年第十四届省赛大学A组试题F
  • 中文wordpress网站模板下载失败wordpress 换主题 打开慢
  • 零基础自学英语入门教程
  • 中国建设企业银行网站首页媒体软文发布平台
  • 个人网站 logo 版权 备案 没用西安自助建站做网站
  • 网站建站 seo网站开发模合同
  • 设计类的属性
  • 网站备案关闭工业设计最好的公司
  • 一 网站建设管理基本情况专业制作网站建设
  • 建设网站方法桂林象鼻山景区简介
  • 化工行业网站设计相册制作模板
  • python——人脸关键点检测
  • 网站流量团队微商城分销平台上线
  • 网站制作团队响应式网站首页
  • 【Kubernets进阶】Kubernetes VPA (Vertical Pod Autoscaler) 详解与配置指南
  • 织梦网站底部黑链汕头市企业网站建设教程
  • 北京免费做网站成都武侯区建设局门户网站
  • Linux 中路由表的匹配规则
  • ios移动网站开发工具网易企业邮箱密码格式要求
  • 山东网站建设空间做思维导图的网站
  • 哈尔滨网站托管网页设计分为几个部分