锐捷校园网认证工具
作者:ZYYO
版本:1.0.0
许可证:MIT
项目简介
这是一个基于 Electron 框架开发的锐捷校园网自动认证工具,专为解决校园网频繁掉线需要重复认证的问题而设计。该工具提供了现代化的图形界面和系统托盘功能,支持自动监控网络状态并在断网时自动重连。
技术架构
核心技术栈
- 前端框架:Electron + HTML5 + CSS3 + JavaScript
- 后端逻辑:Node.js
- 网络请求:Axios
- 加密算法:RSA 公钥加密
- 系统集成:系统托盘、开机自启、管理员权限检测
项目结构
├── electron-main.js # Electron 主进程入口
├── package.json # 项目配置和依赖管理
├── public/
│ ├── index.html # 用户界面
│ └── assets/ # 图标资源
└── src/
├── main.js # 业务逻辑入口
└── module/
├── auth.js # 认证模块
├── campus.js # 校园网信息获取
├── check.js # 网络状态检测
├── config.js # 配置管理
├── encrypt.js # 密码加密
├── network.js # 网络请求封装
├── rsa.js # RSA 加密实现
└── utils.js # 工具函数
技术实现详解
认证流程设计
网络状态检测
- 通过访问
redirectortosuccess.jsp端点检测当前认证状态 - 解析 HTTP 响应头中的
Location字段判断是否已认证 - 支持重定向状态码处理,确保检测准确性
校园网信息获取
- 访问外部网站(如百度)触发校园网重定向
- 解析重定向 URL 提取认证参数
- 调用
pageInfo接口获取 RSA 公钥等加密参数 - 编码处理 queryString 参数确保数据完整性
密码加密机制
- 采用锐捷官方的 RSA 加密算法
- 密码与 MAC 地址组合:
password + ">" + macAddress - 字符串反转后进行 RSA 公钥加密
- 130 位最大数字精度确保加密强度
认证请求处理
- 构建标准的认证数据包
- 包含用户名、加密密码、查询字符串等必要参数
- POST 请求提交到认证服务器
- 解析 JSON 响应判断认证结果
Electron 应用架构
主进程管理
- 单实例应用锁定,防止重复启动
- 系统托盘集成,支持后台运行
- IPC 通信处理前端交互
- 配置文件持久化存储
渲染进程界面
- 现代化暗色主题设计
- 实时状态显示和日志输出
- 响应式布局适配不同屏幕
- 自定义标题栏和窗口控制
系统集成功能
- Windows 开机自启动支持
- 管理员权限检测和提升
- 系统通知推送
- 托盘菜单快捷操作
自动监控机制
定时检测
- 可配置的检测间隔(默认 10 秒)
- 异步网络状态检查避免阻塞
- 智能重试机制处理网络异常
状态管理
- 实时监控状态跟踪
- 日志系统记录操作历史
- 错误处理和异常恢复
主要特性
- 🚀 自动认证:检测到断网时自动重新认证
- 🎯 智能监控:可配置的网络状态监控间隔
- 🖥️ 现代界面:基于 Electron 的跨平台图形界面
- 📱 系统托盘:支持最小化到系统托盘后台运行
- 🔐 安全加密:采用 RSA 加密保护用户密码
- ⚡ 开机自启:支持 Windows 系统开机自动启动
- 📊 实时日志:详细的操作日志和状态显示
安装使用
环境要求
- Node.js 16.0+
- Windows 10/11(推荐)
- 锐捷校园网环境
开发运行
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 控制台模式运行
npm run console
构建打包
# 构建 Windows 安装包
npm run build:win
# 构建便携版
npm run build:win-portable
配置说明
应用配置文件存储在用户主目录的 .xiaoyuanwang-config.json,包含:
- 用户名和密码
- 服务器地址(默认:172.16.200.101)
- 检测间隔设置
- 自启动选项
技术亮点
- 模块化设计:清晰的模块分离,便于维护和扩展
- 异步处理:全异步网络请求,避免界面卡顿
- 错误处理:完善的异常捕获和用户友好的错误提示
- 跨平台兼容:基于 Electron 的跨平台解决方案
- 安全性:本地存储配置,密码 RSA 加密传输
开源协议
本项目采用 MIT 开源协议,欢迎贡献代码和提出建议。
该工具仅供学习交流使用,请遵守校园网使用规定。
锐捷校园网认证工具