{{ pgTitle }}
{{ online?'已连接':'未连接' }} {{ encReady?'🔒 端到端加密':'🔓 等待加密' }} 配对: {{ pairedId }}
车辆总数
{{ cars.length }}
在线车辆
{{ onlineCnt }}
加密消息
{{ encCnt }}
加密会话
{{ encReady?'活跃':'--' }}
🔑 密钥协商流程
阶段1
生成密钥对
ECDH P-256
阶段2
交换公钥
发送/接收公钥
阶段3
派生密钥
ECDH deriveBits
阶段4
加密通信
AES-256-GCM
密钥信息
我的指纹{{ myFp||'--' }}
对方指纹{{ peerFp||'--' }}
会话密钥{{ skFp||'--' }}
配对ID{{ pairId||'--' }}
车辆列表
暂无数据
{{ c.vehicleId }}{{ c.online?'🟢 在线':'🔴 离线' }}
最近事件
{{ l.text }}
{{ l.time }}
暂无日志
💬 加密聊天室 {{ encReady?'AES-256-GCM 加密中':'请先建立加密' }}
{{ encReady?'开始加密聊天,输入消息...':'请先在仪表盘建立加密会话' }}
{{ m.text }}
{{ m.time }} · AES-256-GCM
加密详情
算法AES-256-GCM
校验HMAC-SHA256
已发送{{ encCnt }} 条
密钥协商ECDH P-256
加密流程:明文 → AES-256-GCM加密 → HMAC-SHA256签名 → 密文传输 → 对方验签 → 解密
服务器只能看到密文乱码,无法解密任何内容!
🎮 远程控制
加密指令流程
①序列化
明文JSON
②AES-GCM
{{ lastCiph||'...' }}
③HMAC签名
{{ lastSig||'...' }}
④车端执行
等待回复...
指令结果
指令{{ lastRes.command }}
结果{{ lastRes.result }}
🛰 卫星定位 — {{ vid }}
GPS / BDS / GLO / GAL
{{ (carData.lat||30.2084).toFixed(5) }}°N {{ (carData.lng||120.2123).toFixed(5) }}°E
{{ carData.speed }}
km/h · ALT {{ (12+carData.speed*0.3).toFixed(0) }}m
🚗 车辆状态
引擎
空调
车门锁
大灯
天窗
雨刷
手刹
档位: {{ carData.gear }}
📩 接收加密指令
Step1
{{ gotCmd?'已收到密文':'等待中...' }}
{{ lastCC?lastCC.slice(0,32)+'...':'' }}
Step2
{{ decCmd?'AES-GCM解密成功':'等待中...' }}
{{ decCmd.length>50?decCmd.slice(0,50)+'...':decCmd }}
Step3
{{ cmdDone?'HMAC验证通过,已加密回复':'等待中...' }}
🛞 胎压监测 (Bar)
前左
{{ tpVal('fl') }}
bar
前右
{{ tpVal('fr') }}
bar
后左
{{ tpVal('rl') }}
bar
后右
{{ tpVal('rr') }}
bar
🎛 车载控制
🌡 车内环境
车内温度
{{ carData.cabinTemp||28 }}°C
车外温度
{{ carData.outdoorTemp||32 }}°C
湿度
{{ carData.humidity||65 }}%
电池
{{ carData.battery||88 }}%
油量
{{ carData.fuel||65 }}%
续航
{{ carData.range||380 }}km
里程表{{ (carData.odometer||12580).toLocaleString() }} km
空调温度{{ carData.acTemp||24 }}°C
位置{{ carData.location||'杭州' }}
📈 传感器趋势
📊 实时数据
车内温度{{ carData.cabinTemp||28 }}°C
车外温度{{ carData.outdoorTemp||32 }}°C
湿度{{ carData.humidity||65 }}%
电池{{ carData.battery||88 }}%
油量{{ carData.fuel||65 }}%
续航{{ carData.range||380 }}km
GPS{{ (carData.lat||30.2).toFixed(5) }}, {{ (carData.lng||120.2).toFixed(5) }}
🛞 胎压图表
🗺 卫星地图 — ITO
🛰 3D 卫星定位
位置{{ carData.location||'杭州' }}
GPS坐标{{ (carData.lat||30.2).toFixed(5) }}, {{ (carData.lng||120.2).toFixed(5) }}
卫星锁定{{ satCount||12 }}颗
目的地{{ nd||'-' }}
距离{{ nDist||'-' }}
预计到达{{ nEta||'-' }}
🔐 端到端加密通道详情
阶段1
ECDH密钥生成
P-256密钥对
阶段2
交换公钥
收发对方公钥
阶段3
派生会话密钥
ECDH deriveBits
阶段4
AES-GCM加密通信
HMAC签名验证
🔑 密钥详情
协商算法ECDH P-256
加密算法AES-256-GCM (96-bit IV)
签名算法HMAC-SHA256
我的公钥指纹{{ myFp||'--' }}
对方公钥指纹{{ peerFp||'--' }}
会话密钥指纹{{ skFp||'--' }}
📈 统计
加密消息数
{{ encCnt }}
配对ID{{ pairId||'--' }}
配对状态{{ encReady?'✅ 已建立':'⏳ 未建立' }}
🚨 紧急告警中心
暂无告警
{{ a.type }} — {{ a.vehicleId }}{{ a.time }}
{{ a.message }}
📍 {{ (a.lat||0).toFixed(4) }}, {{ (a.lng||0).toFixed(4) }}
📜 安全审计日志
[{{ l.type }}] {{ l.text }}
{{ l.time }}
暂无日志
ℹ️ 系统信息
模式{{ connMode==='p2p'?'P2P直连':'服务器中转' }}
服务器{{ srv }}
角色{{ role==='cloud'?'☁️ 云端':'🚗 车端' }}
用户{{ uname||'--' }}
车辆ID{{ vid||'无' }}
连接状态{{ online?'已连接':'未连接' }}
加密状态{{ encReady?'🔒 已建立':'🔓 未建立' }}
📋 使用说明
🔗 服务器模式(推荐):
1️⃣ 启动服务器:node server.js
2️⃣ 设备A打开 http://IP:3000/console,以 cloud1 登录
3️⃣ 设备B打开 http://IP:3000/console,以 car1 登录
4️⃣ 云端点击 「发起配对」 → 车端自动接受
5️⃣ ECDH密钥协商 → AES-256-GCM加密通道建立!
6️⃣ 云端发送远控指令 → 加密传输 → 车端解密执行

🔑 预置账号:
☁️ 云端:cloud1 / 123456
🚗 车端1:car1 / 123456 (CAR-001)
🚙 车端2:car2 / 123456 (CAR-002)
{{ t }}