Python原始碼保密、加密、混淆
阿新 • • 發佈:2019-01-10
有時候用Python開發一些功能但不希望使用者得到原始碼,就希望對Python程式碼加一些保密措施。目前可行的方案可能是將核心程式碼用cython編譯成os檔案。分析如下:
1.用pyc或pyo檔案代替
生成方式看這裡。Python作為指令碼語言,基本上只要是能得到pyc或pyo檔案,便是等於拿到了原始碼,比如python線上反編譯可以通過pyc和pyo檔案快速識別出原始碼。所以此方法只能隱藏原始碼。
2.混淆原始碼
比如這裡提供了線上的Python程式碼混淆服務,一定程度上增加了破解者閱讀程式碼的成本,但是仍然不能起到保密的作用。
3.pyexe、PyInstaller、py2app等打包軟體
這些工具用於將一個Python專案打包成單個可執行的檔案,方便(在沒有Python環境的機器上)使用。但通過壓縮包可以方便地得到所有pyc檔案或原始檔,與C/C++編譯生成的可執行檔案有本質上的區別,基本上是零保護。
4.Cython
Cython是屬於PYTHON的超集,他首先會將PYTHON程式碼轉化成C語言程式碼,然後通過c編譯器生成可執行檔案。優勢:資源豐富,適合快速開發。翻譯成C後速度比較快。缺點是:無法支援JIT技術(導致純python的執行速度比JAVA、JAVASCRIPT等要慢,於是有了PyPy)