為你的Python程式加密
在實際的工作中,有時候我們需要部署自己的Python應用,但這時候我們並不希望別人能夠看到自己的Python源程式。因此,我們需要為自己的原始碼進行加密,Python已經為我們提供了這樣一套工作機制。
第一種加密Python原始碼的方式,是將.py檔案轉化為.pyc檔案,但這種加密方式很容易被反編譯,因此實用性並不高。
第二種加密Python原始碼的方式,是將.py檔案轉化為.so檔案,這樣加密的可靠性非常高,無法被被人破解,也就很好地保護了原始碼。
本文以Linux系統(Ubuntu)為例,講解如何將自己的Python程式(.py檔案)加密為.so檔案。
首先,我們需要在Ubuntu系統中安裝一些準備工具,包括python3-dev,gcc,Cython,其中Cython為Python的第三方模組。安裝的命令如下:
接著,我們新建pythontest資料夾,用於測試我們的程式碼,資料夾的內容如下:
其中,mytest.py為我們需要加密的Python程式,setup.py為加密的指令碼。mytest.py的程式碼如下:
加密指令碼setup.py的程式碼如下:
測試程式碼so_test.py的程式碼如下:
切換至pythontest資料夾,先執行so_test.py指令碼(為了顯示時間,便於跟後面的程式區分),再執行setup.py對mytest.py程式加密,命令如下:
輸出如下:
執行完加密命令列(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程式py程式碼加密方法Python加密
- 加速你的 Python 程式碼Python
- 因為你沒加密所以網路保險不給你理賠加密
- 初為程式猿(媛)的你,這些技能可以為你們加持
- 如何為你的微信小程式瘦身?微信小程式
- Python 程式碼混淆和加密技術Python加密
- 你加班太多,是因為你的程式碼寫的爛
- Python程式碼混淆工具,Python原始碼保密、加密、混淆Python原始碼加密
- 用位運算為你的程式加速
- Python入門知識彙總,程式設計小白的福利,為你開啟Python大門Python程式設計
- 防止程式碼被竊取,Python程式碼加密常用方案Python加密
- 程式設計師:你的程式碼為誰而寫?程式設計師
- Cython加密python程式碼防止反編譯加密Python編譯
- 20 行 Python 程式碼實現加密通訊Python加密
- Python 的加密庫入門Python加密
- 你們以為的女程式設計師程式設計師
- 致有志成為程式設計師的你程式設計師
- 為什麼用 Java:一個 Python 程式設計師告訴你JavaPython程式設計師
- 為什麼你應該學 Python ?Python
- Python for Android,將你的Python應用打包為APK檔案PythonAndroidAPK
- Python程式設計師鮮為人知但你應該知道的16個問題Python程式設計師
- Chrome擴充套件程式可偷偷竊取你的加密貨幣私鑰Chrome套件加密
- PHP成為首個在核心中嵌入加密庫的程式語言PHP加密
- 使用這個 Python 程式記錄你的活動Python
- 讓你的 Python 程式碼優雅又地道Python
- 幫你提升 Python 的 27 種程式語言Python
- 如何讓你的Python程式碼更加pythonic ?Python
- 為你的 Python 平臺類遊戲新增跳躍功能Python遊戲
- 如何用雲端 GPU 為你的 Python 深度學習加速?GPUPython深度學習
- 為什麼你寫的程式碼糟透了?
- 為什麼你的程式碼如此難以理解
- Java程式的反加密(轉)Java加密
- 帶你真正的瞭解加密和Hash加密
- 你為什麼一定要學Python?Python
- Python中hash加密Python加密
- Python加密word文件Python加密
- 讓你的python程式同時相容python2和python3Python