PyArmor 实现对 Python 脚本终极加密模式

PyArmor 是一个Python脚本加密工具,在 v.7.0.1 中,提供了终极加密模式,能够对 Python 脚本进行绝对安全的保护。在终极模式下面,会把部分函数直接转换成为二进制代码,所以加密过程从本质上讲是不可逆转的。

和直接把脚本转换成为 c 的其它工具 Cython 等相比,终极模式的不同之处在于

  • 加密之后的脚本还是正常 .py 文件,其它工具则是转换整个模块为 .c ,然后编译成扩展模块
  • 只是把模块中的部分函数转换成为了 c ,然后编译成为二进制代码,整个模块还是一个正常的 .py 类型的脚本

其它工具把整个模块全部都转换成为 c ,而有一些 Python 语句特性是无法完全转换成为 c ,所以有些模块转换成为 c 之后无法正常运行。而 PyArmor 终极模式则只是把模块中部分函数转换成为 c,对于不容易转换的函数,则还保留原来的方式,所以基本不影响原来的脚本,绝大部分加密后的脚本都可以正常运行。

终极模式需要使用 c 编译器,对于 LinuxDarwin 来说,一般不需要进行配置,只要默认的 gccclang 能工作就可以。在 Windows 环境下面,可以使用下面任意一种方式配置 clang.exe ,目前其它编译器还不支持

  • 如果已经有 clang.exe ,只要在其它路径直接运行 clang.exe 不出错就可以。
    如果文件存在,但是无法直接运行,可以配置环境变量 PYARMOR_CC 来指定这个文件
  • 从 LLVM 官网 下载并安装预编译版本即可
  • 从 PyArmor 官网下载 clang-9.0.zip ,压缩包大小约为 26M 左右,里面只有一个可执行文件,解压后存放在 $HOME/.pyarmor 下面即可

配置好之后使用 --advanced 5 来进行加密,例如

pip install pyarmor
pyarmor obfuscate --advanced 5 foo.py

加密脚本默认存在在 dist 目录下面

cd dist/
python foo.py

更多详情,请参考 PyArmor 在线文档

你可能感兴趣的:(python,python,加密)