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

2021-09-29 10:48:06 字數 1837 閱讀 7164

在實際的工作中,有時候我們需要部署自己的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())

def say(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檔案,如下:

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

Salesforce 生成測試可用 Id

在寫 test class 的時候,有時候需要一批有 id 的資料或者把 id 作為引數等情況,在資料關係比較複雜的情況下去造真實資料有些麻煩,於是找到這樣乙個可以生成 id 的方法可以用來輔助測試!private static integer fakeidcount 0 private stati...

centos安裝nagios服務(測試可用)

詳細配置請檢視我的另一篇文章 nagios安裝 服務端 192.168.8.81 安裝nagios相關的包 yum y install nagios nagios plugins nagios plugins all nagios plugins nrpe nrpe設定登入nagios後台的使用者和...

DES加密和解密字串(測試可用)

private static byte keys private static string keyuse 12345678 private static string keyde 12345678 private static string encryptkey 87654321 private ...