亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

為你的Python程序加密

Terry_Tai / 2416人閱讀

摘要:在實(shí)際的工作中,有時(shí)候我們需要部署自己的應(yīng)用,但這時(shí)候我們并不希望別人能夠看到自己的源程序。因此,我們需要為自己的源代碼進(jìn)行加密,已經(jīng)為我們提供了這樣一套工作機(jī)制。本文以系統(tǒng)為例,講解如何將自己的程序文件加密為文件。

??在實(shí)際的工作中,有時(shí)候我們需要部署自己的Python應(yīng)用,但這時(shí)候我們并不希望別人能夠看到自己的Python源程序。因此,我們需要為自己的源代碼進(jìn)行加密,Python已經(jīng)為我們提供了這樣一套工作機(jī)制。
??第一種加密Python源代碼的方式,是將.py文件轉(zhuǎn)化為.pyc文件,但這種加密方式很容易被反編譯,因此實(shí)用性并不高。
??第二種加密Python源代碼的方式,是將.py文件轉(zhuǎn)化為.so文件,這樣加密的可靠性非常高,無法被被人破解,也就很好地保護(hù)了源代碼。
??本文以Linux系統(tǒng)(Ubuntu)為例,講解如何將自己的Python程序(.py文件)加密為.so文件。
??首先,我們需要在Ubuntu系統(tǒng)中安裝一些準(zhǔn)備工具,包括python3-dev,gcc,Cython,其中Cython為Python的第三方模塊。安裝的命令如下:

$ sudo apt install python3-dev gcc
$ pip3 install cython

??接著,我們新建pythontest文件夾,用于測試我們的代碼,文件夾的內(nèi)容如下:

其中,mytest.py為我們需要加密的Python程序,setup.py為加密的腳本。mytest.py的代碼如下:

import datetime

class Today():
    def get_time(self):
        print(datetime.datetime.now())
        
    def say(self):
        print("hello from JC!")

加密腳本setup.py的代碼如下:

from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules = cythonize(["mytest.py"]))

測試代碼so_test.py的代碼如下:

from mytest import Today

t = Today()
t.get_time()
t.say()

??切換至pythontest文件夾,先運(yùn)行so_test.py腳本(為了顯示時(shí)間,便于跟后面的程序區(qū)分),再運(yùn)行setup.py對(duì)mytest.py程序加密,命令如下:

$ python3 so_test.py
$ python3 setup.py build_ext

輸出如下:

2019-01-18 21:15:21.126709
hello from JC!

運(yùn)行完加密命令行(python3 setup.py build_ext)后,文件夾中的文件如下:

在build文件夾中,有我們需要的so文件,如下:

生成的so文件一方面對(duì)我們的源程序進(jìn)行了加密,另一方面,我們還能繼續(xù)調(diào)用原來的mytest.py文件中的內(nèi)容。為了驗(yàn)證此功能,我們先刪除mytest.py,再運(yùn)行so_test.py文件,如下:

可以發(fā)現(xiàn),我們刪除了mytest.py文件,即源代碼,但so_test.py文件可以正常調(diào)用源程序的內(nèi)容,這是因?yàn)?,兩次運(yùn)行so_test.py的輸出時(shí)間不一樣。
??總結(jié):在實(shí)際的工作中,我們可以按照上面的方法將.py程序加密為.so文件,當(dāng)然也可以寫個(gè)腳本實(shí)現(xiàn)更復(fù)雜的功能。本次的文章僅作為展示,希望能夠給讀者一些啟發(fā)~

注意:本人現(xiàn)已開通微信公眾號(hào): Python爬蟲與算法(微信號(hào)為:easy_web_scrape), 歡迎大家關(guān)注哦~~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/43037.html

相關(guān)文章

  • 你的PHP程序選擇合適的密碼庫(初稿)

    摘要:我們不會(huì)提及任何糟糕的密碼庫的。僅對(duì)而言如果你一定要安裝對(duì)稱密鑰加密,請(qǐng)使用上述的的密碼庫。的密碼庫為你提供了認(rèn)證加密,而的實(shí)施并不會(huì)驗(yàn)證密文。當(dāng)前的最佳密碼庫之一是內(nèi)建的。這種散列算法對(duì)的編程者或企業(yè)來說都是穩(wěn)定有效的。 如果本文中的術(shù)語讓你感到疑惑,請(qǐng)先參閱密碼學(xué)術(shù)語及概念一文。 密碼學(xué)不是魔術(shù)。加密一個(gè)應(yīng)用程序并不能保證它在襲擊下的安全(特別是在你沒有設(shè)置驗(yàn)證密文的情況下)。但如...

    岳光 評(píng)論0 收藏0
  • 密碼學(xué)入門(一):用Python實(shí)現(xiàn)對(duì)稱加密算法

    0.前言 最開始只是想整理一下密碼學(xué)課程的作業(yè),后面越寫越多,就索性寫成一篇入門的介紹。我會(huì)把自己對(duì)對(duì)稱加密的理解和一些作業(yè)的代碼串起來,力圖清晰明白地展示出來,文中所有代碼都放在我的Github上,如果有錯(cuò)誤之處還請(qǐng)輕拍。 文章地址:https://gooong.cn/post/crypto... 代碼地址:https://github.com/Gooong/Cry... 1.對(duì)稱密碼基...

    henry14 評(píng)論0 收藏0
  • 使用騰訊云配置小程序服務(wù)端開發(fā)環(huán)境

    摘要:最近做小程序服務(wù)器的配置,這一篇是服務(wù)器配置的記錄,方便以后安裝配置。購買服務(wù)器之所以選騰訊云的原因很簡單,那就是便宜,選用成都區(qū),最低配置每月只需。在騰訊云官網(wǎng)注冊登錄就可以直接購買服務(wù)器了。 最近做小程序服務(wù)器的配置,這一篇是服務(wù)器配置的記錄,方便以后安裝配置。 購買服務(wù)器 之所以選騰訊云的原因很簡單,那就是便宜,選用成都區(qū),最低配置每月只需29¥。在 騰訊云 官網(wǎng)注冊登錄就可以直...

    ephererid 評(píng)論0 收藏0
  • 使用certbot你的網(wǎng)站免費(fèi)上https

    摘要:在計(jì)算機(jī)網(wǎng)絡(luò)上,經(jīng)由超文本傳輸協(xié)議進(jìn)行通信,但利用來對(duì)數(shù)據(jù)包進(jìn)行加密。不應(yīng)與在中定義的安全超文本傳輸協(xié)議相混淆。是超文本傳輸協(xié)議,信息是明文傳輸,則是具有安全性的加密傳輸協(xié)議。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud/Cordova混合式開發(fā)。合適和夠用是永不停息的追求。個(gè)人網(wǎng)站:https...

    MangoGoing 評(píng)論0 收藏0
  • 如果你的云供應(yīng)商突然倒閉了,你該怎么辦?

    摘要:年,國外一家云存儲(chǔ)供應(yīng)商停止運(yùn)營并宣布倒閉。所以,如果你的云供應(yīng)商倒閉了,你會(huì)怎么辦傳統(tǒng)觀念中,選擇巨頭們可能會(huì)是一個(gè)明智的選擇,因?yàn)楹茈y想象亞馬遜或微軟會(huì)倒閉。但是當(dāng)你的數(shù)據(jù)和應(yīng)用程序都在云中時(shí),較大的災(zāi)難則是供應(yīng)商倒閉,應(yīng)早做應(yīng)對(duì)。 2013年,國外一家云存儲(chǔ)供應(yīng)商N(yùn)irvanix停止運(yùn)營并宣布倒閉。該公司一直被困于與AWS、谷歌計(jì)算引擎和微軟Azure等這樣的巨頭區(qū)分及競爭,甚至陷入了...

    Gemini 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<