PyArmor加密Python代碼的django工程

PyArmor官方文檔

利用工程模式加密代碼

pyarmor工程模式加密代碼時(shí),為了確保代碼可以被uwsgi和manage.py 啟動(dòng)圆仔,加密入口指定為工程名稱下的init.py文件(與wsgi.py同一個(gè)目錄)和工程目錄下的manage.py文件

pyarmor init --entry=/project_name/__init__.py,manage.py
pyarmor build
  • 問題利用uwsgi啟動(dòng)報(bào)錯(cuò)ModuleNotFoundError: No module named 'project_name.pytransform'

原因是pyarmor創(chuàng)建入口加密入口的init.py文件中有生成了import 錯(cuò)誤的代碼垃瞧,把init.py中的下面代碼進(jìn)行修改即可。

from .pytransform import pyarmor_runtime
#修改為 (去掉相對(duì)import)
from pytransform import pyarmor_runtime

即可修復(fù)uwsgi啟動(dòng)錯(cuò)誤坪郭。以上方法無法修復(fù)个从,采用pyarmor的高級(jí)模式
上面加密方式支持python manage.py runserver 啟動(dòng)

上面的方法已經(jīng)不適用于django的工程的加密,下面是完整的加密腳本

下面的腳本只是演示加密django工程下面的所有app歪沃,不加密manage.py文件嗦锐,可以使用runserver啟動(dòng),也可以用uwsgi啟動(dòng)沪曙。

import os
import sys
import pyarmor
from pyarmor.pyarmor import main as call_pyarmor
import shutil
import traceback


def migrate_project(encred_dir="encred_project/dist"):
    """
    復(fù)制非加密的文件到加密后的工程
    請(qǐng)修改下面need_copy_list奕污、need_copy_folder、need_create_folder的內(nèi)容
    """
    #不用加密的文件液走,復(fù)制
    need_copy_list = ['manage.py', 'config.ini', 'settings.py']
    #不用加密的文件夾碳默,復(fù)制
    need_copy_folder = ['database_dirver']
    #項(xiàng)目依賴的文件夾贾陷,新建
    need_create_folder = ['static', 'logs', 'uploads']

    for copy_file in need_copy_list:
        shutil.copyfile(copy_file, encred_dir + "/" + copy_file)
    
    for copy_folder in need_copy_folder:
        try:
            shutil.copytree(copy_folder, encred_dir + "/" + copy_folder)
        except Exception as e:
            traceback.print_exc()
            continue
    
    for create_folder in need_create_folder:
        try:
            os.mkdir(encred_dir + "/" + create_folder)
        except Exception as e:
            traceback.print_exc()
            continue

def encry_project():
    """
    運(yùn)行pyarmor,構(gòu)建本腳本目錄下的所有django的app執(zhí)行加密,
    請(qǐng)修改下面app_name為自己app的名稱
    """
    need_encry_modules = ['app_name1', 'app_name2']
    init_cmds = [ 
        ['init', '--src', module, '--encry=__init__.py', f'encred_project/{module}'] for module in need_encry_modules 
    ]

    for each_init in init_cmds:
        try:
            call_pyarmor(each_init)
        except RuntimeError:
            traceback.print_exc()
            pass

    create_common_runtime_cmd = [ 
        'build',
        '--output', 
        'encred_project/dist',
        '--only-runtime',
        f'encred_project/{need_encry_modules[0]}'
    ]
    call_pyarmor(create_common_runtime_cmd)

    encry_cmds =[
        ['build',
        '--output',
        'encred_project/dist',
        '--no-runtime',
        f'encred_project/{module}']
        for module in need_encry_modules
    ]

    for each_encry in encry_cmds:
        call_pyarmor(each_encry)

if __name__ == "__main__":
    encry_project()
    migrate_project()
 

添加和修改license的操作如同encry_project那般嘱根。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末髓废,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子该抒,更是在濱河造成了極大的恐慌慌洪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凑保,死亡現(xiàn)場(chǎng)離奇詭異冈爹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)欧引,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門频伤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人维咸,你說我怎么就攤上這事萍歉《巳瑁” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵份名,是天一觀的道長(zhǎng)婚肆。 經(jīng)常有香客問我租副,道長(zhǎng),這世上最難降的妖魔是什么较性? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任用僧,我火速辦了婚禮,結(jié)果婚禮上赞咙,老公的妹妹穿的比我還像新娘责循。我一直安慰自己,他們只是感情好攀操,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布院仿。 她就那樣靜靜地躺著,像睡著了一般速和。 火紅的嫁衣襯著肌膚如雪歹垫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天颠放,我揣著相機(jī)與錄音排惨,去河邊找鬼。 笑死碰凶,一個(gè)胖子當(dāng)著我的面吹牛暮芭,可吹牛的內(nèi)容都是我干的鹿驼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谴麦,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蠢沿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起匾效,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤舷蟀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后面哼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體野宜,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年魔策,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匈子。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闯袒,死狀恐怖虎敦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情政敢,我是刑警寧澤其徙,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站喷户,受9級(jí)特大地震影響唾那,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜褪尝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一闹获、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧河哑,春花似錦避诽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至睬罗,卻和暖如春轨功,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背容达。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工古涧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人花盐。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓羡滑,卻偏偏與公主長(zhǎng)得像菇爪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柒昏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355