当前位置:网站首页 > 技术博客 > 正文

python程序如何加密



  1. 发行.pyc文件(👍)
  2. 代码混淆(👍)
  3. 使用py2exe(仅限windows)
  4. 使用Cython(兼容性差)

1、发行 .pyc文件

1)原理

.pyc文件 : 二进制文件,无法看出源码内容。

python执行代码原理:代码 —> .pyc文件 —> 解释执行.pyc文件中内容。

因此,python解释器也可以直接执行.pyc文件

2)步骤

使用python标准库自带的 compileall即可。

 
 

在这里插入图片描述

3)优点
  • 简单方便,提高源码激活成功教程门槛
  • 平台兼容性好,.py能在哪运行,.pyc就能在哪运行
4)缺点
  • 解释器兼容性查,.pyc只能在特定版本的解释器上运行
  • 有现成的反编译工具,激活成功教程成本低
    • python-uncompyle6 就是这样一款反编译工具
    •  

2、代码混淆

1)原理

通过一系列的转换,让代码逐渐不让人那么容易明白。

主要有以下几种手段:

  • 移除注释和文档。没有这些说明,在一些关键逻辑上就没那么容易明白了。
  • 改变缩进。完美的缩进看着才舒服,如果缩进忽长忽短,看着也一定闹心。
  • 在tokens中间加入一定空格。这就和改变缩进的效果差不多。
  • 重命名函数、类、变量。命名直接影响了可读性,乱七八糟的名字可是阅读理解的一大障碍。
  • 在空白行插入无效代码
2)步骤
方法①: 使用oxyry进行混淆

http://pyob.oxyry.com/ 是一个在线混淆 Python 代码的网站,使用它可以方便地进行混淆。

左侧输入源码,点击[OBFUSCATE](模糊),即可在右侧看到模糊后的代码。

在这里插入图片描述

方法②: 使用pyobfuscate库进行混淆

pyobfuscate 算是一个颇具年头的 Python 代码混淆库了,但却是“老当益壮”了。

在这里插入图片描述

  • 使用方法:
    • 下载安装pyobfuscate(pypi上没有)https://github.com/astrand/pyobfuscate
      •  
      • 上面安装 macos可能会失败,原因是文件中指定data放到/usr/bin,而macos文件系统有安全保护。 我这里直接将源码复制到 pyobfuscate 目录下,然后执行命令模糊代码。
      •  
    • 如果安装好,则可直接调用,模糊代码
      •  
    • 结果会输出在控制台,类似print。
    • 不幸的是,pyobfuscate一次只能处理一个源文件,所以它并不适合大型项目。它目前似乎也只适用于python2
3)优点
  • 简单方便,提高了一点源码激活成功教程门槛
  • 兼容性好,只要源码逻辑能做到兼容,混淆代码亦能
4)缺点
  • 只能对单个文件混淆,无法做到多个互相有联系的源码文件的联动混淆
  • 代码结构未发生变化,也能获取字节码,激活成功教程难度不大
  • pyobfuscate年久未更,目前只适用于python2

3、使用py2exe

1)原理

py2exe 是一款将 Python 脚本转换为 Windows 平台上的可执行文件的工具。其原理是将源码编译为 文件,加之必要的依赖文件,一起打包成一个可执行文件。

最终发行由 打包出的二进制文件。

2)步骤(只能在windos运行)
  1. 编写入口文件。本示例中取名为 :
     
  2. 编写 :
     
  3. 生成可执行文件
     
  4. 生成的可执行文件位于 。
3)优点
  • 能够直接打包成 exe,方便分发和执行
  • 激活成功教程门槛比 .pyc 更高一些
4)缺点
  • 兼容性差,只能运行在 Windows 系统上
  • 生成的可执行文件内的布局是明确、公开的,可以找到源码对应的 文件,进而反编译出源码

4、使用Cython

1)原理

虽说 的主要目的是带来性能的提升,但是基于它的原理:将 / 编译为 文件,再将 文件编译为 (Unix) 或 (Windows),其带来的另一个好处就是难以激活成功教程。

2)步骤
  1. 编写文件 或 :
     
  2. 编写 :
     
  3. 编译为 ,再进一步编译为 或 :
     
  4. 执行 即可直接引用生成的二进制文件中的 函数。

在这里插入图片描述

3)优点
  • 生成的二进制 .so 或 .pyd 文件难以激活成功教程
  • 同时带来了性能提升
4)缺点
  • 兼容性稍差,对于不同版本的操作系统,可能需要重新编译
  • 虽然支持大多数 Python 代码,但如果一旦发现部分代码不支持,完善成本较高

参考资料:如何保护你的 Python 代码 (一)—— 现有加密方案

版权声明


相关文章:

  • sscom串口调试使用方法2025-03-22 18:01:02
  • 戴尔电脑如何跳过自检2025-03-22 18:01:02
  • usbmonitor2025-03-22 18:01:02
  • iconv iso转utf82025-03-22 18:01:02
  • 应用层主要包括哪些协议2025-03-22 18:01:02
  • js多行注释快捷键是什么2025-03-22 18:01:02
  • 网络配置技术2025-03-22 18:01:02
  • 电驴官方网站下载软件2025-03-22 18:01:02
  • eeee2222cm02025-03-22 18:01:02
  • everything文件搜索软件2025-03-22 18:01:02