MiBand-TOTP/README.md

4.5 KiB
Raw Blame History

TOTP验证器 - 小米手环10版

一个专为小米手环10设计的TOTP时间一次性密码验证器应用支持生成双因素认证码。

🎯 项目简介

本项目是一个运行在小米手环10上的验证器应用支持生成TOTP和Steam验证码。通过简洁的界面和触感反馈为用户提供便捷的二步验证体验。

功能特性

  • 🔐 多种验证码支持支持标准TOTP和Steam验证码算法
  • 实时倒计时:弧形进度条显示验证码剩余有效时间
  • 📱 响应式界面:针对手环屏幕尺寸优化的用户界面
  • 📳 触感反馈:验证码更新、页面切换时的震动提醒
  • 🔄 自动刷新:验证码自动更新,无需手动操作
  • 📊 详情查看:大字体显示验证码,方便查看
  • 性能优化:针对手环设备的电量和性能优化

🛠️ 技术栈

  • 开发框架:快应用 (QuickApp)
  • UI技术UX模板语言
  • 加密算法HMAC-SHA1, Base32编码
  • 依赖库crypto-js
  • 构建工具aiot-toolkit

📦 项目结构

src/
├── app.ux                 # 应用入口文件
├── manifest.json          # 应用配置清单
├── common/
│   ├── accounts.json      # 账户配置文件
│   └── logo.png           # 应用图标
├── pages/
│   └── index/
│       └── index.ux       # 主页面
└── utils/
    └── totp.js            # TOTP算法实现

🚀 安装使用

环境要求

  • Node.js >= 8.10
  • aiot-toolkit >= 2.0.4
  • 小米手环10设备

开发环境搭建

  1. 克隆项目
git clone <repository-url>
cd totp-authenticator
  1. 安装依赖
npm install
  1. 开发调试
npm start
  1. 构建发布
npm run build
npm run release

⚙️ 配置说明

账户配置

src/common/accounts.json 中配置验证器账户:

{
  "accounts": [
    {
      "name": "服务名称",
      "username": "用户名",
      "secret": "Base32密钥",
      "enabled": true,
      "type": "totp"
    }
  ],
  "settings": {
    "title": "TOTP验证器",
    "refreshInterval": 20,
    "maxDisplayAccounts": 10
  }
}

支持的验证码类型

  • totp: 标准TOTP验证码6位数字
  • steam: Steam验证码5位字符

密钥格式

  • 支持Base32编码的密钥
  • 支持40位十六进制密钥
  • 密钥示例:JBSWY3DPEHPK3PXP

🎨 界面说明

主界面

  • 显示所有启用的验证器账户
  • 实时显示验证码和剩余时间
  • 弧形进度条指示时间进度

详情页面

  • 大字体显示验证码(分行显示更清晰)
  • Steam验证码单行显示
  • 返回按钮和时间提醒

颜色系统

  • 🟢 绿色:正常状态(时间充足)
  • 🟡 橙色警告状态时间不足10秒
  • 🔴 红色紧急状态时间不足5秒

📱 交互说明

  • 点击账户卡片:进入验证码详情页面
  • 点击返回按钮:返回主界面
  • 验证码更新:自动震动提醒
  • 页面切换:轻微震动反馈

🔐 安全须知

  • 请妥善保管TOTP密钥避免泄露
  • 建议定期备份账户配置
  • 删除不再使用的验证器账户
  • 注意设备安全,避免他人访问

🛠️ 开发说明

代码规范

# 代码检查
npm run lint

# 代码格式化
prettier --write "src/**/*.{ux,js}"

性能优化

  • 页面隐藏时停止定时器以节省电量
  • 使用节能模式减少不必要的计算
  • 优化动画性能,避免卡顿

调试技巧

  • 使用 console.log 进行调试
  • 通过 aiot start --watch 实现热重载
  • 检查手环设备日志排查问题

📋 待办事项

  • 添加账户管理功能
  • 支持二维码扫描添加账户
  • 添加数据同步功能
  • 支持更多验证码算法
  • 优化电量消耗

🤝 贡献指南

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

  • 感谢小米开发者社区提供的技术支持
  • 感谢快应用框架团队
  • 感谢所有贡献者和测试用户

📞 联系方式

如有问题或建议,请通过以下方式联系:

  • 提交 Issue
  • 发起 Pull Request
  • 联系项目维护者

让验证更简单,让手环更智能!