这是一个为使用深澜(srun)认证系统的校园网设计的Python命令行工具。它模拟了浏览器登录过程中的加密和认证流程,帮助用户通过命令行快速登录、注销、检查状态,并提供了后台自动重连的功能。
本工具主要针对北京理工大学(BIT)的认证页面进行分析和实现,但其加密核心 crypto.py 对其他使用类似 srun_bx1 加密版本的深澜系统也有参考价值。
- 登录/注销: 支持通过命令行进行登录和注销操作。
- 状态检查: 快速检查当前网络的登录状态。
- 凭据管理: 提供安全的凭据保存机制,避免每次都输入密码。
- 后台自动登录: 可作为一个后台守护进程运行,持续检测网络状态,一旦掉线立即自动重连。
- 跨平台: 基于Python,可在 Windows, macOS, Linux 等系统上运行。
确保你的系统已经安装了 Python 3。
首先,克隆本仓库到你的本地:
git clone <仓库地址>
cd autologin然后,安装所需的依赖包:
pip install -r requirements.txt为了让脚本能够自动登录,你需要先配置并保存你的校园网账号和密码。运行以下命令,并根据提示输入你的用户名和密码:
python srun.py --config凭据将被保存在项目目录下的 config.json 文件中。请放心,密码是经过加密处理的。
你可以通过 -h 或 --help 参数查看所有可用的命令:
python srun.py --help-
使用已保存的凭据登录(最常用):
python srun.py
-
手动输入凭据登录(不使用配置文件):
python srun.py -p
-
检查登录状态:
python srun.py -s # 或者 python srun.py --status -
注销登录:
python srun.py --logout
-
详细模式(显示调试信息):
python srun.py -v
这是本工具最强大的功能。启动后,它会成为一个后台守护进程,定期检查网络状态,如果发现掉线,会自动为你重新登录。
nohup (no hang up) 是Linux/macOS系统的一个命令,它可以让程序在你关闭终端或注销后继续在后台运行。
-
启动后台自动登录(默认每5分钟检测一次):
nohup python srun.py --auto & -
自定义检测间隔(每60秒检测一次):
nohup python srun.py --auto --interval 60 & -
详细模式运行(输出更多调试信息):
nohup python srun.py --auto -v &
当使用 nohup 运行时,所有输出会被保存到 nohup.out 文件中:
# 查看日志
tail -f nohup.out
# 查看最后20行日志
tail -20 nohup.out
# 清空日志文件
> nohup.out-
查看正在运行的进程:
ps aux | grep "python srun.py --auto"
-
停止后台进程:
# 方法1:通过进程名停止 pkill -f "python srun.py --auto" # 方法2:通过PID停止(先用ps找到PID) kill <PID>
-
检查进程是否在运行:
pgrep -f "python srun.py --auto" && echo "正在运行" || echo "未运行"
为了更好地管理后台进程,建议创建一个简单的启动脚本:
创建 start_autologin.sh:
#!/bin/bash
cd /path/to/your/autologin
nohup python srun.py --auto --interval 300 > srun.log 2>&1 &
echo "自动登录服务已启动,PID: $!"创建 stop_autologin.sh:
#!/bin/bash
pkill -f "python srun.py --auto"
echo "自动登录服务已停止"使用方式:
# 启动
chmod +x start_autologin.sh
./start_autologin.sh
# 停止
chmod +x stop_autologin.sh
./stop_autologin.shWindows 用户可以使用以下方式在后台运行:
# 使用start命令在新窗口中运行
start /b python srun.py --auto
# 或者创建bat文件
echo python srun.py --auto > autologin.bat
start /b autologin.bat本工具的核心在于 crypto.py 模块,它精确复现了深澜认证前端JavaScript中的加密算法。主要包括:
xEncode: 一个TEA(微型加密算法)的变种,用于加密包含用户名、密码、IP等信息的JSON字符串。- 自定义Base64: 深澜系统使用了一套非标准的Base64字母表来编码
xEncode的结果,这是成功认证的关键。本工具已实现该自定义编码。 HMAC-MD5和SHA1: 用于生成密码的MD5摘要和最终的校验和(chksum)。
A: 可以在 nohup.out 或 srun.log 中查看错误日志,然后重新启动进程。
A: 可以将启动脚本添加到系统的开机自启动中,或者使用crontab定时任务。
A: 通常不需要,脚本会自动检测网络参数。如果有问题,可以使用 -v 参数查看详细信息。
欢迎提交Issue和Pull Request来帮助改进这个工具!