<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Python基礎(chǔ)】加密你的Python源碼順便再打個包如何?

          共 2316字,需瀏覽 5分鐘

           ·

          2020-08-26 16:51


          本篇為專屬于“交通科研Lab”志愿者系列推文活動,為大家?guī)斫煌ǜ咝4T博們原創(chuàng)推文。為作者點贊,歡迎大家關(guān)注交流!??!


          點擊藍字 關(guān)注我們


          成為一個智慧、快樂和富有的人。

          ——王宇航



          導(dǎo)語


          熟悉Python的小伙伴,有沒有考慮過:如何讓其他小伙伴(包括沒有Python基礎(chǔ)的小伙伴)更方便更快捷地使用你的Python程序,且不用擔心自己的核心程序泄漏出去呢?


          首先想到的便是將程序源碼編譯成一個exe文件,這樣所有小伙伴直接雙擊exe文件便可以運行程序。但這便涉及到一個問題,這個操作只是對源碼進行一個打包,類似于添加到壓縮文件,用戶也可以輕易地將壓縮文件解壓,到時候程序中的所有源碼便會暴露出來。


          考慮到在C和C++這種編譯型語言中是將所寫的語言編譯成機器代碼,即二進制代碼,無法通過二進制代碼反編譯出源碼。Python是一門解釋型語言,但我們可以通過Cython庫將我們程序中的核心源碼編程成pyd格式的文件,即Python環(huán)境中的DLL文件,其是二進制編碼,同樣無法被反編譯。


          由此,對于我們的Python源碼,我們可以先將其核心部分編譯成pyd格式進行加密,然后再將程序打包成一個exe文件,方便用戶使用,讓你的Python程序更安全、更便捷。文章主要分為三個部分,希望這篇文章可以為有這方面需求的小伙伴提供一些幫助:


          1.首先是新建一個Python小項目,簡單實現(xiàn)對文件夾內(nèi)圖片進行批量重命名的操作,以此為示例,便于理解和后續(xù)操作的描述;


          2.其次是對Python源碼加密操作的詳細講解;


          3.最后講解了Python程序的打包操作,并展示最終實驗效果。




          新建Python項目



          初始化虛擬環(huán)境

          在項目目錄下新建一個干凈的Python虛擬環(huán)境,可以直接在PyCharm中操作,或者使用virtualenv venv命令創(chuàng)建環(huán)境,從下圖可以看到環(huán)境中只包含pip和setuptools兩個庫。




          完成Python項目

          項目文件夾下存放著5張待命名的圖片和兩個python文件,內(nèi)容如下圖所示,rename.py中定義了重命名圖片的函數(shù)my_rename,run_rename.py是項目的啟動文件,通過調(diào)用my_rename函數(shù)完成圖片的重命名。


          rename.py


          run_rename.py



          Python源碼加密



          安裝Cython

          Cython全稱是C-Extensions for Python,可以看作是python的一個第三方庫,關(guān)于Cython的介紹,官網(wǎng)(https://cython.org/)上是這樣的,有興趣的小伙伴可以多去了解一下。安裝命令:pip install Cython




          設(shè)置setup.py文件

          在項目文件夾下新建一個setup.py文件,文件內(nèi)容如下,setup中的name變量可以自己起一個名字,關(guān)鍵是修改ext_modules變量,將需要加密的python文件名填入其中即可。

          setup.py



          運行setup.py文件

          在項目文件夾的目錄下,打開命令終端,輸入命令python setup.py,運行setup.py文件,也可在PyCharm中直接運行。運行結(jié)果如下圖所示,提示代碼已生成,同時也給出了生成文件的路徑,通常情況下文件生在虛擬環(huán)境的Lib\site-packages目錄下。



          查看生成文件的目錄,新生成如下兩個文件,pyd格式文件便為對核心源碼進行加密后的文件,其無法被反編譯。然后在項目文件夾下生成rename.c和build文件夾,可以直接刪除,此時rename.py和setup.py也可以從項目目錄下移除,故目錄下只剩run_rename.py和5張待重命名的圖片。




          Python程序打包



          安裝Pyinstaller

          Pyinstaller也是Python的第一個第三方庫,使用起來很方便,更多信息詳見官網(wǎng)(https://pyinstaller.org/),安裝命令:pip install pyinstaller



          生成spec文件

          運行如下命令便可在項目目錄下生成spec文件,其中-F參數(shù)是指將程序打包為一個exe文件,可以用文本編輯器打開并編輯spec文件,根據(jù)不同的程序打包需求,對spec文件中的參數(shù)進行對應(yīng)的調(diào)整,后續(xù)我們會再推出一篇文章來詳細講述打包相關(guān)的操作。


          pyi-makespec -F run_rename.py



          生成exe文件

          運行命令:pyinstaller run_rename.spec,在當前目錄的生成build和dist文件夾,在dist文件夾下找到打包好的exe文件,將其復(fù)制出來,剛剛生成的的文件及目錄可以直接刪除。



          運行exe文件

          將生成的exe文件放到圖片的文件夾中,雙擊運行exe文件,彈出黑窗口后消失(也可在命令終端中輸入對應(yīng)的exe文件名運行,此時在終端上可以看到程序運行過程打印出來的信息),發(fā)現(xiàn)圖片的文件名已經(jīng)修改完成,OK,Python源碼的加密和打包功能實現(xiàn)。



          編輯:莊楨


          往期精彩回顧





          獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:

          https://t.zsxq.com/662nyZF

          本站qq群1003271085。

          加入微信群請掃碼進群(如果是博士或者準備讀博士請說明):

          瀏覽 40
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码骚妇| 国产偷抇久久精品A片69探花 | 亚欧成人视频 | 青青草手机免费在线看片 | 拍拍拍拍拍拍拍拍拍拍拍拍拍拍拍拍拍电影 |