為你的Python程式加密

2021-09-09 09:08:33 字數 2100 閱讀 7948

在實際的工作中,有時候我們需要部署自己的python應用,但這時候我們並不希望別人能夠看到自己的python源程式。因此,我們需要為自己的源**進行加密,python已經為我們提供了這樣一套工作機制。

第一種加密python源**的方式,是將.py檔案轉化為.pyc檔案,但這種加密方式很容易被反編譯,因此實用性並不高。

第二種加密python源**的方式,是將.py檔案轉化為.so檔案,這樣加密的可靠性非常高,無法被被人破解,也就很好地保護了源**。

本文以linux系統(ubuntu)為例,講解如何將自己的python程式(.py檔案)加密為.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 datetime

class

today()

:def

get_time

(self)

:print

(datetime.datetime.now())

defsay

(self)

:print

("hello from jc!"

)

加密指令碼setup.py的**如下:

from distutils.core import setup

from cython.build import cythonize

setup(ext_modules = cythonize(

["mytest.py"])

)

測試**so_test.py的**如下:

from mytest import today

t = today(

)t.get_time(

)t.say(

)

切換至pythontest資料夾,先執行so_test.py指令碼(為了顯示時間,便於跟後面的程式區分),再執行setup.py對mytest.py程式加密,命令如下:

$ python3 so_test.py

$ python3 setup.py build_ext

輸出如下:

2019-01-18 21:15:21.126709

hello from jc!

執行完加密命令列(python3 setup.py build_ext)後,資料夾中的檔案如下:

在build資料夾中,有我們需要的so檔案,如下:

生成的so檔案一方面對我們的源程式進行了加密,另一方面,我們還能繼續呼叫原來的mytest.py檔案中的內容。為了驗證此功能,我們先刪除mytest.py,再執行so_test.py檔案,如下:

可以發現,我們刪除了mytest.py檔案,即源**,但so_test.py檔案可以正常呼叫源程式的內容,這是因為,兩次執行so_test.py的輸出時間不一樣。

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

親測試可用 為你的Python程式加密

在實際的工作中,有時候我們需要部署自己的python應用,但這時候我們並不希望別人能夠看到自己的python源程式。因此,我們需要為自己的源 進行加密,python已經為我們提供了這樣一套工作機制。第一種加密python源 的方式,是將.py檔案轉化為.pyc檔案,但這種加密方式很容易被反編譯,因此...

為你的程式新增系統級熱鍵

很多情況下,我們需要給程式新增乙個系統級的熱鍵。就像常用的qq在啟動後,任何時間只要按下ctrl alt z就能將qq的主介面調出。當然,我們還可以幹其他很多事情!我們在為程式加上熱鍵後,每當按下你所設定的快捷鍵,就會給主視窗發出乙個wm hotkey的訊息,但很可惜,class wizartd並沒...

為偏執的你準備的5款安卓加密工具

你是否擔心會有人監視著你?如果是的話,安卓生態系統提供了大量緩解你這一偏執的應用。但是那款應用是必備的選擇?以下是5款你應該立即安裝並且投入使用的應用。這些應用將讓你安心,知道你的移動裝置資料遠比其他更加安全。1 orbot proxy with tor 為了在安卓上使用tor,最好的辦法是orbo...