Cython加密(含Windows和Linux)

 

本文共分为三章,第一章为Win环境准备,第二章为Linux环境准备,第三章为加密过程(通用)。Win请看13章,Liunx请看23章。

 

一、Windows环境加密Python环境准备

 

  1. 需要电脑上安装Visual Studio(下载地址: https://visualstudio.microsoft.com/zh-hans/vs/)

 

下载免费的社区版即可。

 

因为只需要用到C语言的编译器,为节省空间,安装时仅勾选C++模块即可。

 

 

二、Linux环境加密Python环境准备

1.1 安装Linux(如果已有Linux可跳过本节)

Windows10安装Linux子系统 方法/步骤

 

  1. 点击左下角的Windows图标,然后再点击设置图标。

 

  1. Windows设置界面上点击应用

 

3.应用和功能界面下点击程序和功能

 

 

4.接着在这个界面左侧上点击启用或关闭Windows 功能

 

 

 

 

5.勾选适用于LinuxWindows子系统项。只有开启这项设置才能正常安装Linux子系统

 

 

 6.在微软应用商店(Microsoft Store)搜索 Linux,可以看到一系列 Linux 发行版,根据自己需要选择适合自己的发行版,这里选用 Ubuntu

 

 

 

 7.下载完成后启动,可能需要等待一两分钟,设置用户名和密码要牢记,我们便得到了一个 Linux 环境了。

 

 

1.2 Linux上安装Python环境

1)修改Ubuntuapt-get源为国内镜像源

1、原文件备份

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2、编辑源列表文件

sudo vim /etc/apt/sources.list

3、将原来的内容删除(连续两次按d),添加如下内容并保存(:wq)(中科大镜像源)

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

 

4、运行sudo apt-get update

2)安装必备的库, 执行

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

3)源码安装Python

https://www.python.org/downloads/source/下载指定的版本

例如 wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

如果wget命令太慢,可以用Windows上的迅雷下载并拷贝到Linux中。

 

解压 (命令:tar -xvf 文件名)

例如 tar -xvf Python-3.6.8.tgz

 

进入文件夹cd Python-3.6.8

逐行执行如下命令

 

./configure --with-ssl --prefix=/usr/bin/python3.6
make && make install

rm /usr/bin/python

ln -s /usr/bin/python3.6/bin/python3.6 /usr/bin/python

rm /usr/bin/pip

ln -s /usr/bin/python3.6/bin/pip3 /usr/bin/pip

 

 

 

三、加密过程

 

 

1.需要安装cython

 

如使用纯Python环境,执行pip install cython

如使用Anaconda环境,执行conda install cython

 

2.复制如下代码并命名为setup.py

 

from distutils.core import setup

from distutils.extension import Extension

from Cython.Distutils import build_ext

 

filename = 'test' # 源文件名

full_filename = 'test.pyx' # 包含后缀的源文件名

 

setup(

    cmdclass = {'build_ext': build_ext},

ext_modules = [Extension(filename, [full_filename])]

)

 

 

代码中的filenamefull_filename中的test请替换为自己要编译的模块名称,并将py后缀改为pyx

执行如下命令,运行上面的setup.py,即可在同文件夹生成后缀为.pyd.so的动态链接库文件。

python setup.py build_ext --inplace

 

其他Python需要导入该动态链接库时,和正常的Python模块使用方法无异,直接from 模块名 import 方法名即可。

 

posted @ 2021-05-02 15:18  flamestudio  阅读(689)  评论(0编辑  收藏  举报