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 到期 模块调用

在这里插入图片描述

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佐倉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值