Python编译成.so文件进行加密后调用的实现
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编译为二进制so可执行文件实例
通过cpython把python的文件转换为二进制文件,达到代码保护的目的 1.下载Cython-0.28.2.tar.gz python setup.py install安装 2.创建你需要打包成二进制的python文件 test.py def hello(s): print(s) 3.创建一个setup.py文件,内如如下: from distutils.core import setup from Cython.Build import cythonize setup( name = "t
-
Python hashlib加密模块常用方法解析
这篇文章主要介绍了Python hashlib加密模块常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 主要用于对字符串的加密,最常用的为MD5加密: import hashlib def get_md5(data): obj = hashlib.md5() obj.update(data.encode('utf-8')) result = obj.hexdigest() return result val = get_md5('12
-
Python 项目转化为so文件实例
思路是先将py转换为c代码,然后编译c为so文件,所以要安装以下内容: python 安装:cython pip install cython linux 安装:python-devel,gcc yum install python-devel yum install gcc 初步编译 新建Test.py文件,内容如下 class test: def __init__(self): print('init') def say(self): print ('hello') 新建setup.py,内
-
Python编译成.so文件进行加密后调用的实现
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 f
-
Linux下将源文件编译成目标文件的过程解析
简介 请讲一下linux如何源文件逐步编译成可执行文件. 解答 首先先上图对编译的整个过程有个感性的认识,然后再逐步分析各个过程. 以hello.c 程序为例 # include <stdio.h> main{ printf("hello\n"); } 一个.c源程序需要经过预处理器生成.i文件,再经过编译器生成.s文件,再经过汇编器生成可重定位目标文件.o文件,再与其他.o文件经过链接器生成最终的可执行目标程序. 预处理阶段.主要是处理源文件中以"#"
-
python打包成so文件过程解析
这篇文章主要介绍了python打包成so文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip install cython 编写setput.py文件: setup.py文件内容如下: from distutils.core import setup from distutils.extension import
-
史上最详细的Python打包成exe文件教程
打包成exe文件可以让python代码在没有python环境的条件下,依然能够运行,实在是码农们写追女朋友表白.情人节浪漫的必需品! 1.使用豆瓣镜像源下载: pyinstaller 有需要了解如何使用国内镜像的小伙伴可以滴滴到此: 国内镜像源详细使用教程! https://blog.csdn.net/xtreallydance/article/details/112596963 在python终端或者cmd中输入此命令: pip install pyinstaller -i https://p
-
Golang 编译成DLL文件的操作
首先撰写golang程序exportgo.go: package main import "C" import "fmt" //export PrintBye func PrintBye() { fmt.Println("From DLL: Bye!") } //export Sum func Sum(a int, b int) int { return a + b; } func main() { // Need a main function
-
如何将Python编译成C语言
前言: 文章里用的Python环境是Anaconda3 2019.7这里测试的程序是找出所有1000以内的勾股数.a∈[1, 1000],b∈[1, 1000], c∈[1, 1000] 足a² + b² = c² 有多少种解? 如果用普通的python去写,代码如下: 创建一个main.py # encoding=utf-8 # cython: language_level=3 import time import pyximport pyximport.install() import py
-
Python打包成exe文件的详细操作指南
目录 前言 一.安装pyinstaller 1.1 安装pyinstaller,使用安装命令: 1.2 如果遇到需要更新版本请输入: 1.3 检查是否正确安装 1.4 稍等,水一下; 二.python打包成exe文件(附带图标打包) 2.1 第一种:cd到指定文件夹打包存放 2.2 第二种方法:cd到py源文件夹内打包存放 2.3最终效果 参考:命令解释 总结 前言 我原本是学C\C++,这是本人第一篇关于python的文章.请多多关照! 对于python为什么要打包成exe文件,是因为传输源文
-
C#实现将javascript文件编译成dll文件的方法
本文实例讲述了C#实现将javascript文件编译成dll文件的方法.分享给大家供大家参考,具体如下: 第一步:新建项目 添加js文件 写个测试Function (JScript.js) 单击JS文件属性.将 生成操作 改成嵌入的资源 第二步:在项目文件中添加一个类文件 该 类继承System.Web.UI.WebControl类 并重写控件预呈现的方法 代码如下: public class ClientScript:System.Web.UI.WebControls.WebControl
-
linux中把.c的文件编译成.so文件
linux中共享库以so为后缀(shared object),与Windows下的DLL类似,是在程序运行时动态连接.多个进程可以连接同一个共享库. 以下以编译mylib.c为例讲如何编译.so文件. 首先,编译mylib.c: $gcc -c -fPIC -o mylib.o mylib.c -c表示只编译(compile),而不连接.-o选项用于说明输出(output)文件名.gcc将生成一个目标(object)文件mylib.o. 注意-fPIC选项.PIC指Position Indepe
-
python 多线程将大文件分开下载后在合并的实例
废话不多说了,上代码吧: import threading import requests import time import os class Mythread(threading.Thread): def __init__(self,url,startpos,endpos,f): super(Mythread,self).__init__() self.url=url self.startpos=startpos self.endpos=endpos self.fd=f def downl
随机推荐
- Python编程中用close()方法关闭文件的教程
- 一句简单命令重启nginx
- Oracle回滚段使用查询代码详解
- ie6 动态缩略图不显示的原因
- 前端js文件合并的三种方式推荐
- 浅谈vue中数据双向绑定的实现原理
- JS简单实现无缝滚动效果实例
- js带闹铃功能的倒计时代码
- Ruby中的数组和散列表的使用详解
- 阿里云云服务器Windows 2008中的FTP配置图文教程
- nginx修改配置限制恶意爬虫频率
- 详解Java面向对象编程中方法的使用
- iOS中给UITableView的侧滑删除增加多个按钮的实现方法
- Java实现文件和base64流的相互转换功能示例
- Python Django切换MySQL数据库实例详解
- Python递归函数 二分查找算法实现解析
- 使用XML配置c3p0数据库连接池
- python+opencv打开摄像头,保存视频、拍照功能的实现方法
- springMVC 用户登录权限验证实现过程解析
- MySQL数据迁移使用MySQLdump命令