自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:如何正確保護(hù)Python代碼

開發(fā) 前端
pyarmor使用pip就可以安裝:pip install pyarmor。pyarmor是一個收費工具,但免費也能使用。免費版有絕大部分功能,加密小的腳本足夠了。

去年我寫過一篇文章《一日一技:如何對Python代碼進(jìn)行混淆》介紹過一個混淆Python代碼的工具,叫做pyminifier,這個東西混淆出來的代碼,咋看起來有模有樣,但仔細(xì)一看,本質(zhì)上就是變量名替換而已,只要耐下心來就能看懂,如下圖所示:

圖片圖片

而我今天要介紹另一個工具,叫做pyarmor。pyminifier跟它比起來,就跟玩具一樣。

pyarmor使用pip就可以安裝:pip install pyarmor。pyarmor是一個收費工具,但免費也能使用。免費版有絕大部分功能,加密小的腳本足夠了。

我們今天要測試的腳本如下圖所示:

圖片圖片

運(yùn)行以后如下圖所示:

圖片圖片

現(xiàn)在,執(zhí)行命令pyarmor g json_path_finder.py。對這個腳本進(jìn)行加密,會在dist文件夾中生成加密后的文件,如下圖所示:

圖片圖片

加密后的文件打開以后長這樣:

圖片圖片

這個代碼,人已經(jīng)完全沒法看懂了。雖然代碼看不懂,但可以正常運(yùn)行,如下圖所示:

圖片圖片

需要注意的是,pyarmor會生成一個二進(jìn)制文件pyarmor_runtime_000000。這個文件需要和加密后的程序放在一起,才能正常使用。

如果僅僅是這樣,那pyarmor只能算是一個加強(qiáng)版的pyminifier。而它更強(qiáng)大的地方是,可以設(shè)置程序的過期時間。執(zhí)行代碼:

pyarmor g -e 30 json_path_finder.py

設(shè)定程序30天以后過期。

也可以使用絕對日期:

pyarmor g -e 2024-08-30 json_path_finder.py

當(dāng)時間過了以后,運(yùn)行加密后的程序,會報錯:

圖片圖片

并且可以通過一個參數(shù)確保這個過期時間跟電腦時間無關(guān),而是從一個授時服務(wù)器上面的時間來判斷:

pyarmor cfg nts=pool.ntp.org
pyarmor g -e 2024-08-30 json_path_finder.py

如下圖所示:

圖片圖片

不僅可以設(shè)定過期時間,還可以綁定電腦的mac地址,這樣一來,只有特定的電腦才能運(yùn)行:

pyarmor g -b <mac地址> json_path_finder.py

除了mac地址,也可以綁定IP地址、電腦序列號,如下圖所示:

pyarmor g -b 128.16.4.10 foo.py
pyarmor g -b HXS2000CN2A foo.py

有了這個工具,以后做私活時,就不用擔(dān)心用戶拿到代碼以后跑路了。還可以讓用戶定期付費。

pyarmor非常強(qiáng)大,可以在官方文檔中看到更多用法,比如對一個package進(jìn)行加密。

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2024-07-30 08:11:16

2022-08-26 09:34:19

單元測試代碼項目

2021-09-14 21:29:01

項目環(huán)境變量

2023-10-29 09:16:49

代碼安全命令

2021-06-08 21:36:24

PyCharm爬蟲Scrapy

2021-10-15 21:08:31

PandasExcel對象

2020-12-04 06:39:25

爬蟲網(wǎng)頁

2021-04-12 21:19:01

PythonMakefile項目

2020-05-19 13:55:38

Python加密密碼

2024-02-20 22:13:48

Python項目Java

2024-01-29 00:45:36

跨域后端接口

2023-10-28 12:14:35

爬蟲JavaScriptObject

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2022-03-12 20:38:14

網(wǎng)頁Python測試

2024-11-11 00:38:13

Mypy靜態(tài)類型

2021-05-08 19:33:51

移除字符零寬

2021-03-12 21:19:15

Python鏈?zhǔn)?/a>調(diào)用

2021-09-13 20:38:47

Python鏈?zhǔn)?/a>調(diào)用

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2024-11-13 09:18:09

點贊
收藏

51CTO技術(shù)棧公眾號