如果Python的源代码无法保密,那不是说所有的算法大伙都可以用?_百度知 ...

发布网友 发布时间:2022-04-24 06:07

我来回答

2个回答

热心网友 时间:2022-04-19 01:30

可以使用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": "身份证明号码"
},

"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="身份证明号码验证通过"))
else:
self.write(FalseResponse(hint="身份证明号码验证失败"))

三、项目部署

程序调试 修改setting.py

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

moles = ["mod1"]

moles_config ={
"mod1": {
"deny_ip": "",
"allow_ip": "*"
}
}

启动程序 python main.py

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

在项目目录下

pymod pack mod1

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

修改setting.py

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

moles = []

再次运行 python main.py 测试

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

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

热心网友 时间:2022-04-19 02:48

Python鼓励开源,一定要加密也是可以的,比如做win桌面软件,打包成exe就可以做封装处理的。但现在的软件大都以BS为主,客户看到的只是数据展示,也就是常说的前端。逻辑都在服务上处理,用户一样是看不到的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com