Python编译成.so文件进行加密后调用的实现

yipeiwu_com5年前Python基础

pyc的破解相对容易,使用cython将python文件编译成.so文件,能在一定程度上增强python源码的私密性。

编译成.so文件

环境准备:cython

测试脚本准备:test.py

#-*-coding: UTF-8 -* -
class test:
  def say(self):
    print 'hello'

脚本编译准备:

3.1 编写compile.py文件,内容如下:

#-*-coding: UTF-8 -* -
from distutils.core import setup
from Cython.Build import cythonize
setup(
  ext_modules = cythonize("test.py") #注意这里推荐使用相对路径,编译出的so文件在引用其他模块时可能会出现路径问题
)

3.2 编译出的so文件(test.so)在调用compile.py时所在目录的build/lib下

使用方式

编写useTest.py脚本:

#-*-coding: UTF-8 -* -
from test import test #注意test.so文件要在可访问到的路径下
test.say()

执行验证。

以上这篇Python编译成.so文件进行加密后调用的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python判断中文字符串是否相等的实例

Python判断中文字符串是否相等的实例

Python判断两个相等的中文字符串为false,将两个待比较的字符串都把unicode编码设为‘utf-8'也不能解决问题,具体原因如下: 1.首先查看待比较两个字符串的编码格式 ,使...

Python探索之修改Python搜索路径

当Python执行import语句时,它会在一些路径中搜索Python模块和扩展模块。可以通过sys.path查看这些路径,比如: >>> import sys...

django框架cookie和session用法实例详解

django框架cookie和session用法实例详解

本文实例讲述了django框架cookie和session用法。分享给大家供大家参考,具体如下: 首先知道http协议 http协议它是无状态的协议,验证的信息不会保留 基于请求响应,短...

对python numpy.array插入一行或一列的方法详解

如下所示: import numpy as np a = np.array([[1,2,3],[4,5,6],[7,8,9]]) b = np.array([[0,0,0]]) c...

win8.1安装Python 2.7版环境图文详解

win8.1安装Python 2.7版环境图文详解

Python相信大家都有所耳闻,特别是Python进入山东省小学教材,还列入全国计算机等级考试。 打算爬网易云音乐评论的我,首先要安装一个Python环境。 目前Python有2.x版和...