python 算法加密

加密代码片段样例

文件名:iter_n.py

import time

def iter_from_n(n):
    list_n = []
    for index,value in enumerate(range(n)):
        list_n.append([index,value])
    return list_n
    
if __name__=="__main__":
    t1 = time.time()
    iter_from_n(100000)
    t2 = time.time()
    print ("花费时间:{}".format(t2-t1))

0. 直接执行py文件

命令:python iter_n.py
在这里插入图片描述

1.pyc加密

命令:python -m compileall [目录|文件.py]

在这里插入图片描述
命令:python iter_n.cpython-37.pyc
在这里插入图片描述

说明:无法直接调用内部封装模块

2.pyd加密

2.1 Cython加密

pip install Cython==0.29.22
gcc相关环境编译相关文件

setup.py文件

from distutils.core import setup
from Cython.Build import cythonize

setup(name='iter_n',
     ext_modules=cythonize('iter_n.py'))

2.1.1 编译命令

python setup.py build_ext --inplace

2.1.2 编译命令

python setup.py [build|build_ext]
python setup.py install
在这里插入图片描述

2.2 easycython加密

pip install easycython

2.2.1 编译命令

easycython iter_n.py

2.2.2 编译命令

easycython iter_n.pyx
在这里插入图片描述

2.3 模块使用

2.3.1 生成pyd文件

在这里插入图片描述

2.3.2 模块调用

test.py

from iter_n import iter_from_n
print (iter_from_n(10))

在这里插入图片描述

3.py2exe

pip install py2exe
setup.py文件

#coding=utf-8
from distutils.core import setup
import py2exe

options = {"py2exe":
  {
    "compressed": 1, #压缩
    "optimize": 2,
    "ascii": 1,
    "bundle_files": 1 #所有文件打包成一个exe文件
  }
}


setup (
  options = options,
  zipfile=None,  #不生成library.zip文件
  console=[{"script": "iter_n .py", 'icon_resources': [(1, 'icon.ico')]  }]#源文件,程序图标
)

3.1 编译命令

python setup.py py2exe

在这里插入图片描述
在这里插入图片描述

4.pyinstaller

pip install pyinstaller

常用参数:
–icon=图标路径
-F 打包成一个exe文件
-w 使用窗口,无控制台
-c 使用控制台,无窗口
-D 创建一个目录,里面包含exe以及其他一些依赖性文件
pyinstaller -h 来查看参数
pyinstaller -F -w -i icon.ico iter_n .py
在这里插入图片描述
在这里插入图片描述

5.pyarmor

pip install pyarmor

5.1pyarmor加密

pyarmor obfuscate --recursive [目录|文件.py]
在这里插入图片描述

5.2 设置使用日期

5.2.1 生成日期许可证

pyarmor licenses --expired 2024-01-01 目录

在这里插入图片描述

在这里插入图片描述

5.2.2 生成日期许可证

pyarmor obfuscate --recursive --with-license licenses/r001/license.lic iter_n.py
在这里插入图片描述
在这里插入图片描述

5.3加密后的文件

在这里插入图片描述
在这里插入图片描述

5.4 模块调用

在这里插入图片描述

test.py

from iter_n import iter_from_n
print (iter_from_n(10))

5.4.1 正常 模块调用

在这里插入图片描述

5.4.2 到期 模块调用

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38641985/article/details/128286978
今日推荐