# AXC-Client **Repository Path**: mmgczx/axc-client ## Basic Information - **Project Name**: AXC-Client - **Description**: 密码应用智能助理客户端 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-11-24 - **Last Updated**: 2025-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 密码应用智能助理用户手册 # 一、客户端安装 ## 1.安装 当前客户端支持windows 10/11安装,双击“密码应用智能助理_x.x.x_x64-setup.exe”安装程序可执行安装(如图1所示),首次安装用户根据推荐安装设置点击“Next”即可完成安装。
图1 安装页面
## 2.重装&卸载 如用户使用过程中遇到问题,双击安装程序进行重装或卸载程序,用户可根据需要勾选 “Delete the application data”,删除程序默认存储数据,本地存储包含当前版本应用信息及用户个人使用浏览记录(如图2所示)。
图2 卸载页面
# 二、注册登录 客户端登录界面如图3所示,本客户端主要提供登录认证功能,账号注册及管理需前往门户网站进行。
图3 登录页面
## 1.账号注册 账号注册分为以下两个步骤: (1)请点击界面上的“注册”按钮,跳转至“密码科技国家工程中心门户网站”完成注册,如图4所示。提交信息后,需等待管理员审核通过,方可登录客户端。
图4 用户注册页面
(2)申请使用智能助理:前往工程中心门户网站密码应用智能助理页面申请使用,如图5所示。
图5 申请使用智能助理
## 2.密码管理 如需找回或修改密码,同样需要在上述门户网站进行操作。 # 三、会话管理 ## 1.界面展示 主要介绍工作区管理界面、会话界面、插件选择区、中间报告展示区、任务执行状态展示区,如图6所示。
图6 程序主界面
### 1.1工作区管理界面 提供工作区及工作区会话管理功能,工作区用于对会话进行分类管理。可点击“工作区”、“文件夹”新增工作区或文件夹,对不同会话和工作区进行分类整理。新建工作区后,可展开工作区点击“新建会话”可选择不同会话类型。 当前客户端提供四种会话类型,如图7所示。 (1)密码应用安全检测与评估 自动执行多个维度的密码应用安全检测,基于检测结果生成安全评估报告,大大提升密码应用安全检测与评估的自动化、智能化及标准化水平。 (2)密码应用开发助手 汇聚产业单位的密码产品信息知识库,结合大语言模型代码生成能力,提供密码应用代码生成、代码合规性审查服务,大幅度降低系统开发阶段密码技术使用“门槛”。 (3)密码政策及标准咨询 构建完备的密码应用政策及标准知识库,运用AI大模型对政策及标准进行智能检索与深度解析,实时提供密码政策解读、标准查询、合规分析、处置建议等咨询服务。 (4)密码产业数据分析 构建实时更新的密码产业数据库,运用人工智能技术对海量数据进行统计分析和深度挖掘,提供及时、便捷、定制化的密码产业数据分析服务。
图7 对话类型选择
### 1.2会话界面 #### 1.2.1功能概述 本界面是用户与AI助手进行交互对话的主窗口(如图8所示),用户可在此发送指令,并查看AI助手的实时反馈。
图8 交互对话窗口
#### 1.2.2交互会话操作 **Ⅰ.界面说明** 对话列表主要由两类消息气泡组成: (1)用户发送的消息:显示在界面右侧(或特定区域),代表用户的输入指令。 (2)助手回复的消息:显示在界面左侧(或特定区域),代表AI生成的回答。 **Ⅱ.操作说明** 鼠标悬停在消息气泡上,可进行以下操作: (1)针对用户消息:支持复制文本、重新编辑输入内容。 (2)针对助手回复:支持复制文本、重新生成回答。 (3)通用高级操作:点击“更多”按钮,可选择引用该条消息或将其转换为报告。 **Ⅲ.特别说明** 当对助手回复执行“重新生成”操作后,消息下方会出现左右切换箭头。点击箭头即可在历史回复版本与当前版本之间进行切换查看(如图9所示)。
图9 AI回复版本切换
#### 1.2.3添加文件 **Ⅰ.操作说明** 会话界面输入框左上方“添加文件”按钮支持添加文件和文件夹两种形式(如图10所示): 添加文件:选择单个文件进行上传。 添加文件夹:选择整个目录进行批量上传。
图10 添加文件操作
**Ⅱ. 典型应用场景** 根据不同的业务需求,建议选择不同的添加方式。 (1)代码审计场景:例如在“密码应用安全检测与评估”会话中,建议使用添加文件夹模式,直接选中需分析的代码目录,以便AI模型读取完整工程结构。 (2)流量分析场景:例如进行报文分析时,建议使用添加文件模式,精准定位并选择对应的网络流量文件(绝对路径)。 **Ⅲ.文件解析与展示机制** 文件添加后,系统会根据文件类型呈现不同的反馈结果: (1)支持解析的文件:对于 html、txt、json、css、js、ts、md等文本类格式,系统将自动解析。用户可在界面弹出框中直接预览并查看引用的文件详细内容(如图11所示)。
图11 文件解析预览
(2)不支持解析的文件:对于系统暂不支持预览的格式(如二进制文件等),界面将仅显示该文件的绝对路径,供会话引用,无法查看具体内容,如图12所示。
图12 文件路径展示
#### 1.2.4插件选择 点击插件选择按钮,在密码应用安全检测与评估和密码应用开发助手对话交互过程中可自主新增或取消插件选择,如图13所示。
图13 插件选择
**特别说明:** 会话默认加载的插件不可被取消选择,如图14所示。
图14 加载默认插件
#### 1.2.5报告转换 交互会话过程中,可点击消息最下方的更多按钮“”,选择“**转换为报告**”,将该条AI回复消息转换为markdown格式报告并在报告展示区中展示,如图15所示。
图15 报告转换
生成报告后,点击报告管理区中已生成报告可展示报告详细信息,同时,用户可右键点击已生成报告导出到本地存储,如图16所示。
图16 报告展示
注:“密码应用安全检测与评估”会话执行“应用信息录入”、“系统扫描”、“代码分析”、“网络包分析”、“报告生成”等MCP插件后可自动生成中间报告,如图17所示。
图17 自动生成中间报告
#### 1.2.6引用报告 点击“**引用报告**”按钮会弹出当前会话的“**报告管理区**”中已生成的中间报告,用户可以勾选并基于勾选的报告进行对话或执行下一步任务,如图18所示。 示例:在密码应用安全检测与评估会话中基于子报告生成综合评估报告。
图18 引用报告
#### 1.2.7任务执行状态展示 用户可在任务执行状态展示区查看当前任务运行状态,如图19所示。
图19 插件运行状态
## 2.会话类型简介 ### 2.1密码应用安全检测与评估 #### 2.1.1功能概述 本功能模块包含密码应用信息录入、系统扫描、代码扫描、流量分析及最终报告生成五个核心插件,如图20所示。用户可根据实际需求,灵活选择独立执行某项分析或进行全流程评估。各功能间的逻辑关系与操作规范如下: (1)密码应用信息录入:该功能是生成最终综合报告的必要前置步骤,用于定义被评估的主体对象。 (2)专项分析与中间报告:系统扫描、代码扫描与流量分析功能均支持独立运行,执行上述任一功能后,系统将即时生成对应的专项中间报告(如代码分析中间报告等),供用户查看单项检测结果。 (3)综合报告生成规则:系统采用关联汇总机制生成最终的《密码应用安全检测与评估报告》。 **报告生成机制**:若用户在独立执行各项分析功能时,未将其与已录入的密码应用信息进行关联,则生成的中间报告将仅作为独立文件保存,不参与最终的综合评估;只有将扫描或分析任务与已录入的密码应用信息成功关联,该任务产生的中间报告数据才会被“最终报告生成”功能识别并汇总,从而生成完整的综合评估报告。
图20 密码安全评估工具链
#### 2.1.2各项任务使用指南 **Ⅰ.应用信息录入** (1)点击图20中的“应用信息录入”按钮即可调用插件,如图21所示。
图21 调用应用信息录入插件
(2)点击图21中插件编辑按钮,进入应用信息录入界面,如图22所示。
图22 应用信息录入界面
(3)应用信息录入包含三种方式: - 直接在界面中填写; - 下载模板文件填写,再上传解析; - 直接上传已有的文档,AI自动解析,解析完成后提示用户补充检测所需但文档内容不足的信息。 应用信息录入界面重要选项说明,如下表所示。 |功能及选项|说明| | --- | --- | | 下载模板 | 从平台下载模板文件,根据模板文件进行填写 | | 选择文件并导入 | 选择填写好的模板文件进行导入,也可以直接使用密码应用方案文档进行导入,系统会使用AI进行文档信息提取并写入当前会话框 | | 系统名称 | 待测试密码应用名称 | | 等保等级 | 待测试密码应用等保等级,可选未定级、等保一级至五级 | | 敏感信息 | 系统扫描过程中需要进行扫描的敏感信息类型,选择自定义时需要自行录入对应重要信息关键词或重要信息的正则表达式,如图23所示 |
图23 敏感信息类型配置
(4)待检测服务器需录入信息清单如下表所示,可一次填写多台待检测服务器信息,每台待检测服务器中包含的存储和源代码目录也可一次填写添加多个。需要注意的是,为了提高检测效率和准确性,上传的待检测源代码需要是核心代码模块。 支持的代码脚本类型 ``` '.py','.cpp', '.c','.go', '.java', '.ts', '.vue', '.sql', '.cs', '.c#' ```
名称 Linux 服务器名称
IP 地址 Linux 服务器 IP 地址
用户名 服务器 ssh 用户名,用于上传系统扫描探针
密码 服务器 ssh 密码,用于上传系统扫描探针
存储详情 数据库
系统扫描待扫描的数据库类型、IP、端口、密码及库名称,支持 mysql、postgresql、oracle、SQL Server、MongoDB、Redis、SQLite,IP地址填写 127.0.0.1 即可,扫描探针会自动部署在服务端上
日志目录
系统扫描待扫描的日志绝对路径
文件存储
系统扫描待扫描的文件系统文件夹路径,密码应用服务部署路径
服务端源代码目录 密码应用源代码本地目录路径(核心代码路径)
(5)网络接入节点需录入信息清单如下表所示。 | | | | --- | --- | | 名称 | 网络节点名称 | | 服务IP地址 | 需要分析的报文中密码应用服务器的IP地址,如为公网抓包,则下面节点位置需要选择“网络边界”,内网抓包则选择“应用边界” | | 节点位置 | 网络边界(对应公网报文)、应用边界(对应内网报文) | | 报文目录 | 本地报文目录绝对路径,如“C:\\Users\\GCZX\\Desktop\\测试源文件\\tls.pcapng” | (6)客户端(如有客户端)录入信息清单如下表所示。 | | | | --- | --- | | 源代码目录 | 本地源代码目录 | | 安装包目录 | 本地安装包目录 | 录入完成后点击确定,状态栏颜色变为绿色,可以点击后续步骤继续下一步操作,如系统扫描、文件扫描、流量分析。 **Ⅱ.系统扫描** 点击系统扫描按钮,系统会自动使用应用信息录入步骤中已录入的信息,若未预先录入系统信息,单独调用系统扫描工具时,需要输入包含上述所需信息内容。 示例:“请调用系统扫描工具帮我扫描192.168.1.1,用户名gczx,密码123456,密码应用部署路径"/home/gczx/Project/testfiles",扫描mysql数据库中jeesite库中的敏感信息,mysql数据库用户名密码root:123456” **Ⅲ.代码分析** 点击代码扫描按钮,系统会自动使用应用信息录入步骤中已录入的信息,若未预先录入系统信息,单独调用代码分析工具时,需要输入包含上述所需信息内容。 示例:“请调用代码分析工具分析"E:\\tmp\\src\\main\\java\\com\\example\\csp” **Ⅳ.流量分析** 点击代码扫描按钮,系统会自动使用应用信息录入步骤中已录入的信息,若未预先录入系统信息,单独调用代码分析工具时,需要输入包含上述所需信息内容。 示例:“请调用网络包分析工具分析" C:\\Users\\GCZX\\Desktop\\\\测试源文件\\a.pcapng,IP地址192.168.3.1,所属位置应用边界” **Ⅴ.报告生成** 最终报告生成有两种方式,如图24所示。 (1)点击状态栏报告生成或输入框直接输入“调用报告生成插件,生成最终报告”,该方式会引用本会话中所有中间报告,进行最终报告输出 (2)点击输入栏上面的“引用报告”按钮,在弹出界面选择需要用到的中间报文,点击“生成报告”按钮
图24 密码应用评测报告生成
**Ⅵ.其他插件** 支持用户开发MCP插件或从工程中心门户网站的插件市场获取第三方提供的插件,并在密码应用安全检测与评估中安装启用,以丰富密评测试内容。 ### 2.2密码应用开发助手 #### 2.2.1功能概述 密码应用开发助手基于标准密码应用SDK接口调用规范和特定厂商SDK API调用规范文档自动生成密码应用代码,赋能开发测试人员更快进行代码编写。 #### 2.2.2使用指南 **Ⅰ.知识库确认** 在提出需求前,需用户自行确认系统知识库中是否存在所需厂商的SDK文档,包含以下两种方式,若确认不存在,用户可通过门户网站上传密码设备供应商提供的SDK文档。 (1)与AI对话确认,如图25所示。
图25 知识库确认(询问AI)
(2)通过工程中心门户网站密码产品知识库检索,如图26所示。
图26 知识库确认(门户检索)
**Ⅱ.代码生成** 用户在对话中输入生成代码所需的各项信息,即可自动生成代码,如图27所示。生成代码所需的信息包含厂商、设备类型、型号、版本号和开发语言,其中厂商、设备类型、开发语言是必须输入的,其他为非必选项,AI助手会根据知识库中最新版本的SDK文档来生成代码。 示例:“请帮我查询电科网安服务器密码机的API知识库,并根据知识库实现一个国密SM4对称加密本地文件的Java代码样例”
图27 代码生成
### 2.3密码政策及标准咨询 #### 2.3.1功能概述 密码政策及标准咨询对话提供下面两项功能。 (1)密码政策及标准咨询:对密码应用相关的国家和行业政策法规、标准规范进行解读分析。 (2)密码知识测评:根据密码应用相关的国家和行业政策法规、标准规范设计测评考试题目,并输出试卷。 #### 2.3.2使用指南 Ⅰ.政策咨询相关,如图28所示。 示例:“我们计划把 SaaS 平台接入政务外网并对外提供接口,涉及用户身份认证、数据存储加密与日志审计。请结合《密码法》及商用密码应用相关管理要求,从准入条件、密钥管理、上报备案、与等保对接等方面逐条解读对企业的具体影响,并给出需要补齐的材料清单与整改建议(按优先级排序)”
图28 政策咨询示例
Ⅱ. 用户在对话中输入生成测评试题所需的各项信息,即可自动生成试卷,如图29、30所示。生成试卷所需的信息包含考试名称、考试方向、每个方向占比、考试难度。 示例:“请为研发与运维设计一套测评:覆盖密码算法基础、密钥生命周期管理、证书与 CRL/OCSP、合规流程与常见误区;占比分别为30%、30%、20%、20%,难度为困难。”
图29 密码知识测评
图30 测评试卷
### 2.4密码产业数据分析 #### 2.4.1功能概述 密码产业数据分析对话参考公开的标讯数据及市场动态信息解答用户问题,提出市场洞察分析报告,主要提供下面两项功能。 (1)招投标机会查询:根据用户需求查询招标状态标讯数据,以表格形式回复用户关心的标讯数据(项目名称、招标单位、截止时间及原文链接)。 (2)密码产业数据分析:根据公开标讯数据(项目内容、时间、金额、标的物、地域信息等)结合市场公开动态情报回答用户问题。 注意:产业数据分析能力基于可获取数据信息,若用户问题超出标讯数据覆盖范畴,输出报告内容可能包含AI大模型幻觉信息。 #### 2.4.2使用指南 **Ⅰ.密码产业数据分析** 示例:“在金融、政务、电信三大行业中,短期机会最大的三类密码产品分别是什么?”
图31 密码产业数据分析
**Ⅱ.密码产业数据分析** 示例:“查询密码行业当前招投标项目信息。”
图32 招投标查询
# 四、插件市场 插件市场分为两个板块,分别是客户端插件管理和工程中心门户网站插件市场,两个板块互通。 客户端查看方式:点击客户端左下角图标“”进入插件管理界面,如图33所示。支持MCP插件的配置文件导入或手动添加。
图33 客户端插件管理
门户网站查看方式:进入门户网站首页点击顶部导航栏“密码应用智能助理”跳转新页面。再点击新页面顶部导航栏“插件市场”,即可进入门户网站插件市场,此页面支持插件搜索及提交,如图34所示。
图34 门户网站插件市场
## 1.插件配置 ### 1.1传输方式配置 MCP插件支持STDIO和SSE两种传输方式. (1)STDIO:本地进程间双向通信,延迟低,适合CLI、IDE插件、桌面应用等本地单机场景, 如图35所示。
图35 MCP插件STDIO传输方式
(2)SSE:基于HTTP的服务器发送事件,适合需要跨网络、多客户端访问的云端或远程服务,如图36所示。
图36 MCP插件SSE传输方式
### 1.2依赖建议 使用 STDIO:需要安装NodeJS与npx,或 Python与uvx。 使用 SSE:服务端可直接暴露HTTP接口,客户端仅需配置URL。 ### 1.3详细配置参数
传输方式配置示例配置参数解释传输参数
SSE 插件
{
  id: 'aic-code-analyzer',
  title: '随机数检测工具',
  description: '随机二元序列检测工具,支持GM/T 0005-2021',
  transport: {
    type: 'sse',
    url: 'http://127.0.0.1:5001/mcp-code'
  },
  avatar: { type: 'icon', icon: 'gmt_random', hue: 150 },
  author: 'AI Assistant',
  homepage: ''
}
id: 插件唯一标识,用于客户端内部识别与存储,建议小写短横线风格,需保持唯一。

title: 插件展示名称,显示在插件市场与列表中,便于用户识别。

description: 插件功能与使用说明,简述工具能力与交互提示。

author: 作者或团队名,用于展示归属信息。

homepage: 插件主页或文档链接,可为空,用于进一步了解与支持。

Avatar字段支持如下icon、text、url三种方式
{
  "type": "icon",
  "icon": "sym_o_palette",
  "hue": 80
}
{
  "type": "text",
  "text": "🍉"
}
{
  "type": "url",
  "url": "https://url.to.my/image.avif"
}
对于 icon 类型的图标,可在 Material Symbols 选取图标,将图标名称写为下划线格式,并添加"sym_o_"前缀。
transport.type: 设为 sse,表示使用服务器发送事件作为传输机制。

transport.url: SSE 服务端地址,通常为 MCP 端点(例如 http://127.0.0.1:5001/mcp),需支持 MCP 事件流与请求处理。
STDIO 插件
{
  id: 'local-healthy',
  title: '健康检查',
  description: '示例 STDIO 健康检查工具',
  transport: {
    type: 'stdio',
    command: 'node',
    args: ['server-stdio.js'],
    env: {}
  },
  avatar: { type: 'icon', icon: 'sym_o_terminal', hue: 210 },
  author: 'AI Assistant',
  homepage: ''
}
transport.type: 设为 stdio,表示通过标准输入输出与本地子进程通信。

transport.command: 启动的可执行程序(如 node、python 或自定义可执行文件路径)。

transport.args: 传给 command 的参数数组(如脚本文件名),按命令行顺序传递。

transport.env: 子进程的环境变量对象,按需配置路径、令牌等。
## 2.插件开发 用户可自行开发MCP插件,这里支持STDIO和SSE两种通信方式的MCP插件。两种类型插件需遵循Model Completion Protocol标准协议进行开发,详细开发教程可参考[MCP中文文档](https://modelcontextprotocol.info/zh-cn/)。 ### 2.1 STDIO(Node.js) #### 2.1.1开发环境配置 **bash** ``` npm init -y npm I @modelcontextprotocol/sdk ``` #### 2.1.2开发示例 **server-stdio.js** ``` import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError, } from '@modelcontextprotocol/sdk/types.js'; import axios from 'axios'; class WorkflowMCPServer { constructor() { this.config = { baseUrl: process.env.DIFY_API_BASE_URL || 'http://127.0.0.1:5001', timeout: parseInt(process.env.DIFY_API_TIMEOUT || '30000') }; this.server = new Server( { name: 'workflow-mcp-plugin', version: '1.0.0', }, { capabilities: { tools: {}, }, } ); this.setupToolHandlers(); // 错误处理 this.server.onerror = (error) => console.error('[MCP Error]', error); process.on('SIGINT', async () => { await this.server.close(); process.exit(0); }); } setupToolHandlers() { // 列出可用工具 this.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: 'check_service_health', description: '检查服务的健康状态', inputSchema: { type: 'object', properties: {}, required: [] } } ], }; }); // 处理工具调用 this.server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name } = request.params; if (name === 'check_service_health') { return await this.handleCheckServiceHealth(); } throw new McpError( ErrorCode.MethodNotFound, `未知工具: ${name}` ); }); } async handleCheckServiceHealth() { try { const response = await axios.get(`${this.config.baseUrl}/health`, { timeout: 5000 }); return { content: [ { type: 'text', text: response.status === 200 ? 'healthy' : 'unhealthy' }, ], }; } catch (error) { console.error('健康检查错误:', error.message); return { content: [ { type: 'text', text: `unhealthy: ${error.message}` } ] }; } } async run() { const transport = new StdioServerTransport(); await this.server.connect(transport); console.error('工作流MCP服务已在stdio上运行'); } } const server = new WorkflowMCPServer(); server.run().catch(console.error); ``` **运行方式:** **bash** ``` node server-stdio.js   ``` ### 2.2 SSE(Python FastMCP) #### 2.2.1开发环境配置 **bash** ``` uv venv   .venv\\Scripts\\activate   uv add mcp   ``` #### 2.2.2开发示例 **server_sse.py** ``` from mcp.server.fastmcp import FastMCP   mcp = FastMCP("demo-sse")   @mcp.tool()   def echo(text: str) -> str:   return text   if __name__ == "__main__":   mcp.run(transport="sse", host="127.0.0.1", port=5001)   //服务地址为 `http://127.0.0.1:5001/mcp` ``` ## 3.发布流程 ### 3.1 npm发布(STDIO Node.js 包) #### 3.1.1准备 ‘package.json’ ``` {   "name": "mcp-demo-stdio",   "version": "1.0.0",   "type": "module",   "bin": {   "mcp-demo-stdio": "server-stdio.js"   },   "dependencies": {   "@modelcontextprotocol/sdk": "^1.0.0"   }   } ``` #### 3.1.2登录并发布 MCP发布后,可使用npx调用该插件 **bash** ``` npm login   npm publish --access public   ``` ### 3.2 PyPI 发布(SSE Python 包) #### 3.2.1 准备 ‘pyproject.toml’ **toml** ``` [project]   name = "mcp_demo_sse"   version = "1.0.0"   requires-python = ">=3.9"   dependencies = ["mcp"]   [project.scripts]   mcp-demo-sse = "mcp_demo_sse.server:main"   ``` **入口文件 \`mcp_demo_sse/server.py\`** **python** ```py from mcp.server.fastmcp import FastMCP   def main():   mcp = FastMCP("mcp-demo-sse") @mcp.tool()   def echo(text: str) -> str:   return text   mcp.run(transport="sse", host="0.0.0.0", port=5001)   ``` #### 3.2.2构建与发布 ``` pip install build twine python -m build twine upload dist/* ``` **SSE 发布模式** \- 本地开发:使用 `transport="sse"` 启动,提供 `http://host:port/mcp`。 \- 生产部署:建议容器化,前置反向代理(支持 `text/event-stream`),开启 Keep-Alive。 \- 跨域:按需开启 CORS,仅允许受信来源。 \- 鉴权:通过令牌或自定义 Header 进行访问控制。