使用Cython保護Python源代碼

  • 2020 年 1 月 13 日
  • 筆記

使用Cython保護Python源代碼

**保護您的Python源不受不必要的影響,說起來容易做起來難,因為.pyc位元組碼是可反編譯的,並且混淆很容易被反向工程。我花了一段時間才弄清楚隱藏Python代碼的正確方法…… Cython是一個優化的靜態編譯器,可以將.py模塊轉換為高性能的C文件,生成的C文件可以毫不費力地編譯到本機二進制庫中。編譯完成後,無法將編譯庫轉換回可讀的Python源代碼!

1. 安裝 Cython

pip install cython

2. 添加 hello.pyx

假設在hello.pyx文件中的一個簡單的「hello world」腳本:

def say_hello_to(name):      print("Hello %s!" % name)

注意文件後綴是pyx

3. 添加相應的setup.py腳本

from distutils.core import setup  from Cython.Build import cythonize    setup(name='Hello world app',        ext_modules=cythonize("hello.pyx"))

4. 編譯

根據您使用的Python版本,運行:

python setup.py build_ext --inplace

成功構建後,您可以刪除.c和.py文件,並僅保留.so文件

5.測試

#!/usr/bin/env python  from hello import say_hello_to    say_hello_to('mstools')