使用python语言如何保密源代码以防止逆向工程?

使用python语言如何保密源代码以防止逆向工程?,第1张

python的pyc基本上就是字节码,是很容易复原成python程序的。

目前python界内没有很好的混淆工具,只能听天由命了,或者自己写一些简单的混淆脚本,对py文件进行一定的处理,例如变量名称替换,无用命令的添加等等。

又或者去研究下R python,在有限的python语法中,将py程序直接编译到纯C的exe中。这样只能反汇编了。

python 如何保密源代码?

相关推荐:《Python教程》

加密方式

对 Python 加密时可能会有两种形式,一种是对Python转成的exe进行保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程。

1、对 python转exe加密,下载最新版Virbox Protector加密工具,使用加密工具直接对demo.exe进行加密 *** 作。

2、对.py/.pyc加密。

第一步,使用加密工具对 python 安装目录下的 python.exe 进行加密,将 python.exe 拖入到加密工具 VirboxProtector 中,配置后直接点击加密。

第二步,对.py/.pyc 进行加密,使用 DSProtector 对.py/.pyc 进行保护。

可以使用pymod对代码加密部署

先睹为快,看看一个项目发布的时候,只有几个文件,

main.py 项目程序入口

setting.py 项目配置

apps 项目模块

plusins 项目插件目录

项目发布目录一览

二、创建项目

创建项目 pymod create demo1

cd demo1

创建模块 pymod add mod1

启动pycharm 开始编写功能模块

一个模块默认由三个文件组成

__init__.py 、 handlers.py 、param_schemas.py

业务逻辑主要在handlers.py中编写

__init__.py

from pymod.blueprint import Blueprintapi = Blueprint("/mod1")from .handlers import *

param_schemas.py

schema_sfz = {

"type": "object",

"required": ["sfz", "nl"],

"properties": {

"sfz": {

"type": "string",

"minLength": 18,

"maxLength": 18,

"description": "身份z明号码"

},

"nl": {

"type": "integer",

"minimum": 0,

"maximum": 150,

"description": "年龄"

}

}

}

handlers.py

from . import api

from pymod.ext import RequestHandler, params_validate,TrueResponse,FalseResponse

from .param_schemas import schema_sfz

from pymod.plugins import sfz_check

@api.add_route('/hello')

class Hello(RequestHandler):

def get(self):

self.write('Hello World')

@params_validate(schema_sfz)

def post(self):

sfz = self.get_json_arg("sfz")

nl =self.get_json_arg("nl")

# self.write(TrueResponse(sfz=sfz, nl=nl))

if sfz_check.check_sfzmhm(sfz):

self.write(TrueResponse(hint="身份z明号码验证通过"))

else:

self.write(FalseResponse(hint="身份z明号码验证失败"))

三、项目部署

程序调试 修改setting.py

# 开发模式下 运行的模块名称必须填写

modules = ["mod1"]

modules_config ={

"mod1": {

"deny_ip": "",

"allow_ip": "*"

}

}

启动程序 python main.py

调试没有问题,进入发布模式

在项目目录下

pymod pack mod1

在target目录下生成mod1.mod文件,将其复制到apps目录中

修改setting.py

# 开发模式下 运行的模块名称必须填写

modules = []

再次运行 python main.py 测试

一切OK,系统就可以发布了。

pymod 使用指南,访问 https://pymod.cn


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7979797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存