兩個較方便的方案可以把 python程式碼加密, 一個是 pyinstaller 另一個是 Nuitka
1. 打包工具 PyInstaller >3.2 新加入一個加密引數 --k ,使用者可自定義一個16位金鑰, 例:
python.exe pyinstaller.py --k=xxxxxxxxxxxxxxxx --clean xxx.py
關於這個功能,個人理解是加密後沒有金鑰第三方解不出pyc(pyo)檔案 ,也就無從反編譯,當執行exe檔案時,打包工具將加密的位元組碼送入記憶體解密執行.
但是pyinstaller所用加密模組是開源的PyCrypto,理論上高手還是能想辦法的,不過聊勝於無,就算是c程式只要花時間也能被反彙編,pyinstaller這個新引數可以加大破譯難度,增加破解成本
詳見官方文件
Using PyInstaller
--key The key used to encrypt Python bytecodeEncrypting Python Bytecode
2. 關於 Nuitka, 是把 python程式碼轉成c++程式碼然後靜態編譯成二進位制檔案,比第一種方案稍麻煩一點,但據說可以提升執行速度
Nuitka Home | Nuitka Home
兩個較方便的方案可以把 python程式碼加密, 一個是 pyinstaller 另一個是 Nuitka
1. 打包工具 PyInstaller >3.2 新加入一個加密引數 --k ,使用者可自定義一個16位金鑰, 例:
python.exe pyinstaller.py --k=xxxxxxxxxxxxxxxx --clean xxx.py
關於這個功能,個人理解是加密後沒有金鑰第三方解不出pyc(pyo)檔案 ,也就無從反編譯,當執行exe檔案時,打包工具將加密的位元組碼送入記憶體解密執行.
但是pyinstaller所用加密模組是開源的PyCrypto,理論上高手還是能想辦法的,不過聊勝於無,就算是c程式只要花時間也能被反彙編,pyinstaller這個新引數可以加大破譯難度,增加破解成本
詳見官方文件
Using PyInstaller
--key The key used to encrypt Python bytecodeEncrypting Python Bytecode
2. 關於 Nuitka, 是把 python程式碼轉成c++程式碼然後靜態編譯成二進位制檔案,比第一種方案稍麻煩一點,但據說可以提升執行速度
Nuitka Home | Nuitka Home