【pyarmor】代碼加密


項目需要,要對python代碼加密,網上有很多方法,也可以使用python庫——pyarmor。

參考

概述

保護 Python 腳本的工具,能夠加密 Python 腳本,保護運行時刻的 Python 代碼不被泄露,設置加密腳本的有效期限,綁定加密腳本到硬盤、網卡等硬件設備。
PyArmor 使用動態代碼生成和交叉保護機制來保證加密腳本的安全性。

無縫替換

經過 PyArmor 加密后的 Python 腳本也是一個正常的 Python 腳本,只需要將一個模塊 pytransform.py 和幾個輔助文件加入到原來的代碼里面,就可以把原來的 Python 腳本全部替換成為加密腳本,按照以前的方式使用和運行這些加密腳本。

動態加密

PyArmor 不僅僅能夠加密 Python 腳本,即便在腳本被解釋執行的運行過程中,一旦函數(代碼塊)執行完成,就會被重新加密,從更深層次保證了 Python 腳本的安全性。
PyArmor 使用分片式技術來保護 Python 腳本。所謂分片保護,就是單獨加密 每一個函數,在運行腳本的時候,只有當前調用的函數被解密,其他函數都沒有 解密。而一旦函數執行完成,就又會重新加密,這是 PyArmor 的特點之一。
PyArmor 的核心代碼使用 c 來編寫,所有的加密和解密算法都在動態鏈接庫中實現。首先 _pytransform 自身會使用 JIT 技術,即動態生成代碼的方式 來保護自己,加密后的 Python 腳本由動態庫 _pytransform 來保護,反過來, 在加密的 Python 的腳本里面,也會來校驗動態庫,確保其沒有進行任何修改。這就是交叉保護的原理,Python 代碼和 c 代碼相互進行校驗和保護,大大提高了安全性。
為了提高安全性,PyArmor 會對其中加密的算法進行不定期的更新,這樣,使用新版本加密的腳本會使用完全不同於以往的算法,以保證加密腳本的安全行。

設置不同的許可方式

設置使用期限:PyArmor 可以為加密的腳本設置使用期限,過期之后加密的 Python 腳本就無法在繼續運行。
設置允許運行的設備:PyArmor 可以綁定加密 Python 腳本到硬盤序列號、網卡的 Mac 地址、IP 地址等。
擴展其他認證方式:加密后的腳本對用戶來說就是黑盒子,所以可以在 Python 腳本里面添加任意的認證方式。

使用

最簡單的安裝方式:pip install pyarmor
查看版本號:pyarmor --version,成功在終端看到版本號即安裝成功。
命令 obfuscate 用來加密腳本。最常用的一種情況是切換到腳本main.py所在的路徑,然后執行。
加密:pyarmor obfuscate main.py,PyArmor 會加密 main.py 和相同目錄下面的所有 *.py 文件到dist文件夾中。
運行加密代碼:cd dist之后,python main.py即可。

tips

加密和使用加密代碼的環境要保持一致(python版本,pyarmor版本)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM