第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何保護(hù)Python代碼?

如何保護(hù)Python代碼?

喵喵時(shí)光機(jī) 2019-06-03 13:21:49
如何保護(hù)Python代碼?我正在用Python開(kāi)發(fā)一個(gè)軟件,它將分發(fā)給我雇主的客戶。我的雇主想用一個(gè)時(shí)間限制的許可文件來(lái)限制軟件的使用。如果我們分發(fā).py文件,甚至.pyc文件,那么很容易(反編譯并)刪除檢查許可文件的代碼。另一個(gè)方面是,我的雇主不希望我們的客戶閱讀代碼,擔(dān)心代碼可能被偷,或者至少是“新穎的想法”。有什么好辦法來(lái)處理這個(gè)問(wèn)題嗎?最好有現(xiàn)成的解決方案。該軟件將在Linux系統(tǒng)上運(yùn)行(因此我不認(rèn)為py2exe會(huì)起作用)。
查看完整描述

4 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

Python是一種字節(jié)碼編譯的解釋語(yǔ)言,很難鎖定.即使您使用了exe包程序,如py2exe,可執(zhí)行文件的布局是眾所周知的,Python字節(jié)碼也很容易理解.

通常在這種情況下,你必須做出權(quán)衡。保護(hù)代碼到底有多重要?里面是否有真正的秘密(例如對(duì)稱加密銀行轉(zhuǎn)賬的密鑰),還是你只是疑神疑鬼?選擇一種語(yǔ)言,讓你開(kāi)發(fā)最好的產(chǎn)品最快,并對(duì)你的新想法有多有價(jià)值現(xiàn)實(shí)。

如果您決定確實(shí)需要安全地強(qiáng)制執(zhí)行許可證檢查,請(qǐng)將其編寫為一個(gè)小的C擴(kuò)展,這樣許可證檢查代碼就可以額外困難(但不是不可能!)若要進(jìn)行逆向工程,請(qǐng)將大部分代碼保留在Python中。


查看完整回答
反對(duì) 回復(fù) 2019-06-03
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

Python不是你需要的工具

您必須使用正確的工具來(lái)做正確的事情,而Python的設(shè)計(jì)并不是為了混淆。相反,在Python中,所有東西都是開(kāi)放的或易于揭示或修改的,因?yàn)檫@是語(yǔ)言的哲學(xué)。

如果你想要一些你看不見(jiàn)的東西,找另一個(gè)工具。這并不是一件壞事,重要的是有幾種不同的工具存在于不同的使用中。

混淆真的很難

即使是編譯的程序也可以進(jìn)行反向工程,所以不要認(rèn)為您可以完全保護(hù)任何代碼。您可以分析混淆PHP,破壞閃存加密密鑰,等等。Windows的新版本每次都會(huì)被破解。

有法律要求是個(gè)好辦法。

您不能防止某人濫用您的代碼,但您可以很容易地發(fā)現(xiàn),如果有人這樣做。因此,這只是一個(gè)偶然的法律問(wèn)題。

代碼保護(hù)被高估了

如今,商業(yè)模式傾向于銷售服務(wù)而不是產(chǎn)品。你不能復(fù)制一項(xiàng)服務(wù),也不能盜用它。也許是時(shí)候考慮隨波逐流了.。


查看完整回答
反對(duì) 回復(fù) 2019-06-03
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

編譯python并分發(fā)二進(jìn)制文件!

明智的想法:

使用Cython努特卡脫落皮膚或者類似于將python編譯成C代碼,然后將應(yīng)用程序作為python二進(jìn)制庫(kù)(PYD)分發(fā)。

這樣,就不會(huì)留下Python(字節(jié))代碼,我認(rèn)為,您已經(jīng)從普通代碼中得到了任何人(即雇主)所期望的任何合理程度的模糊化。(.NET或Java比這種情況更不安全,因?yàn)樽止?jié)碼沒(méi)有混淆,可以相對(duì)容易地分解為合理的源)。

Cython與CPython的兼容性越來(lái)越強(qiáng),所以我認(rèn)為它應(yīng)該能工作。(我實(shí)際上在考慮這個(gè)作為我們的產(chǎn)品.。我們已經(jīng)在構(gòu)建一些第三方庫(kù),如PYD/dll,所以將我們自己的python代碼作為二進(jìn)制文件發(fā)布對(duì)我們來(lái)說(shuō)并不是太大的一步。)

看見(jiàn)這篇博文(不是我寫的)關(guān)于如何做這件事的教程。(THX@hithwen)

瘋狂的想法:

您可能會(huì)讓Cython為每個(gè)模塊分別存儲(chǔ)C文件,然后將它們?nèi)窟B接起來(lái),并使用大量?jī)?nèi)聯(lián)構(gòu)建它們。這樣,您的Python模塊就相當(dāng)單一,很難用普通的工具進(jìn)行芯片處理。

超越瘋狂:

如果您可以靜態(tài)地鏈接到python運(yùn)行時(shí)和所有庫(kù)(Dll)并進(jìn)行優(yōu)化,您可能能夠構(gòu)建單個(gè)可執(zhí)行文件。這樣,就很難攔截對(duì)python和您使用的任何框架庫(kù)的調(diào)用。但是,如果使用LGPL代碼,則無(wú)法做到這一點(diǎn)。


查看完整回答
反對(duì) 回復(fù) 2019-06-03
  • 4 回答
  • 0 關(guān)注
  • 1064 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)