zoukankan      html  css  js  c++  java
  • 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 方法名即可。

  • 相关阅读:
    js正则表达式 (.+)与(.+?)
    javaScript中的继承
    理解javascript中event loop,
    vue3-provide/inject 注入
    javaScript设计模式
    javaScript语言精粹--函数
    vue在数据data里面引入图片语法是require("")
    查看分支
    vue项目里面预览下载附件
    小程序组件中传值的几种方式
  • 原文地址:https://www.cnblogs.com/flamestudio/p/14725756.html
Copyright © 2011-2022 走看看