摘要:在實際的工作中,有時候我們需要部署自己的應用,但這時候我們并不希望別人能夠看到自己的源程序。因此,我們需要為自己的源代碼進行加密,已經為我們提供了這樣一套工作機制。本文以系統為例,講解如何將自己的程序文件加密為文件。
??在實際的工作中,有時候我們需要部署自己的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文件,如下:
生成的so文件一方面對我們的源程序進行了加密,另一方面,我們還能繼續調用原來的mytest.py文件中的內容。為了驗證此功能,我們先刪除mytest.py,再運行so_test.py文件,如下:
可以發現,我們刪除了mytest.py文件,即源代碼,但so_test.py文件可以正常調用源程序的內容,這是因為,兩次運行so_test.py的輸出時間不一樣。
??總結:在實際的工作中,我們可以按照上面的方法將.py程序加密為.so文件,當然也可以寫個腳本實現更復雜的功能。本次的文章僅作為展示,希望能夠給讀者一些啟發~
注意:本人現已開通微信公眾號: Python爬蟲與算法(微信號為:easy_web_scrape), 歡迎大家關注哦~~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43037.html
摘要:我們不會提及任何糟糕的密碼庫的。僅對而言如果你一定要安裝對稱密鑰加密,請使用上述的的密碼庫。的密碼庫為你提供了認證加密,而的實施并不會驗證密文。當前的最佳密碼庫之一是內建的。這種散列算法對的編程者或企業來說都是穩定有效的。 如果本文中的術語讓你感到疑惑,請先參閱密碼學術語及概念一文。 密碼學不是魔術。加密一個應用程序并不能保證它在襲擊下的安全(特別是在你沒有設置驗證密文的情況下)。但如...
0.前言 最開始只是想整理一下密碼學課程的作業,后面越寫越多,就索性寫成一篇入門的介紹。我會把自己對對稱加密的理解和一些作業的代碼串起來,力圖清晰明白地展示出來,文中所有代碼都放在我的Github上,如果有錯誤之處還請輕拍。 文章地址:https://gooong.cn/post/crypto... 代碼地址:https://github.com/Gooong/Cry... 1.對稱密碼基...
摘要:最近做小程序服務器的配置,這一篇是服務器配置的記錄,方便以后安裝配置。購買服務器之所以選騰訊云的原因很簡單,那就是便宜,選用成都區,最低配置每月只需。在騰訊云官網注冊登錄就可以直接購買服務器了。 最近做小程序服務器的配置,這一篇是服務器配置的記錄,方便以后安裝配置。 購買服務器 之所以選騰訊云的原因很簡單,那就是便宜,選用成都區,最低配置每月只需29¥。在 騰訊云 官網注冊登錄就可以直...
摘要:在計算機網絡上,經由超文本傳輸協議進行通信,但利用來對數據包進行加密。不應與在中定義的安全超文本傳輸協議相混淆。是超文本傳輸協議,信息是明文傳輸,則是具有安全性的加密傳輸協議。 關于作者 程序開發人員,不拘泥于語言與技術,目前主要從事PHP和前端開發,使用Laravel和VueJs,App端使用Apicloud/Cordova混合式開發。合適和夠用是永不停息的追求。個人網站:https...
摘要:年,國外一家云存儲供應商停止運營并宣布倒閉。所以,如果你的云供應商倒閉了,你會怎么辦傳統觀念中,選擇巨頭們可能會是一個明智的選擇,因為很難想象亞馬遜或微軟會倒閉。但是當你的數據和應用程序都在云中時,較大的災難則是供應商倒閉,應早做應對。 2013年,國外一家云存儲供應商Nirvanix停止運營并宣布倒閉。該公司一直被困于與AWS、谷歌計算引擎和微軟Azure等這樣的巨頭區分及競爭,甚至陷入了...
閱讀 1376·2021-11-15 18:11
閱讀 2508·2021-08-19 10:56
閱讀 669·2021-08-09 13:42
閱讀 785·2019-08-30 15:53
閱讀 2078·2019-08-30 10:55
閱讀 3137·2019-08-29 17:18
閱讀 1427·2019-08-29 13:45
閱讀 537·2019-08-29 13:15