日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python代码加密,将python文件编译成so文件

發布時間:2025/3/21 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python代码加密,将python文件编译成so文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python程序(.py文件)是公開的,容易被別人拿去使用,為了更好保護知識產權,可以對python文件加密為.so文件。

首先,我們需要在Ubuntu系統中安裝一些準備工具,包括python3-dev,gcc,Cython,其中Cython為Python的第三方模塊。安裝的命令如下:

sudo apt install python3-dev gcc pip3 install cython

接著,我們新建pythontest文件夾,用于測試我們的代碼,文件夾的內容如下:

?

其中,mytest.py為我們需要加密的Python程序,setup.py為加密的腳本。mytest.py的代碼如下:

import datetimeclass Today():def get_time(self):print(datetime.datetime.now())def say(self):print("hello from Domi!")

加密腳本setup.py的代碼如下:

from distutils.core import setup from Cython.Build import cythonizesetup(ext_modules=cythonize(["mytest.py"]))

測試代碼so_test.py的代碼如下:

from distutils.core import setup from Cython.Build import cythonizesetup(ext_modules=cythonize(["mytest.py"]))

切換至pythontest文件夾,先運行so_test.py腳本(為了顯示時間,便于跟后面的程序區分),再運行setup.py對mytest.py程序加密,命令如下:

python3 so_test.pypython3 setup.py build_ext

在build文件夾中,有我們需要的so文件,/home/pi/so_test/build/lib.linux-armv7l-3.7文件夾

生成的so文件一方面對我們的源程序進行了加密,另一方面,我們還能繼續調用原來的mytest.py文件中的內容。為了驗證此功能,我們先刪除mytest.py,再運行so_test.py文件,

可以發現,我們刪除了mytest.py文件,即源代碼,但so_test.py文件可以正常調用源程序的內容,這是因為,兩次運行so_test.py的輸出時間不一樣。

總結:在實際的工作中,我們可以按照上面的方法將.py程序加密為.so文件,當然也可以寫個腳本實現更復雜的功能。本次的文章僅作為展示,希望能夠給讀者一些啟發~

?

總結

以上是生活随笔為你收集整理的Python代码加密,将python文件编译成so文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。