onekey-authenticator:基于 HarmonyOS NEXT 的鸿蒙原生 2FA 验证器项目

HarmonyOS 鸿蒙原生 2FA 验证器,支持 TOTP、HOTP、Steam 动态口令、扫码导入、本地安全存储和桌面服务卡片。GitHub 主仓库的同步镜像。

分支1Tags1
文件最后提交记录最后更新时间
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前
2 天前

2FA验证器-工具|HarmonyOS 鸿蒙原生双重验证器

本地优先的鸿蒙 2FA 验证器与动态口令工具

GitHub Stars Gitee Stars GitCode Stars Apache-2.0

2FA验证器-工具是一款面向 HarmonyOS NEXT 的鸿蒙验证器,用于管理 TOTP、HOTP 和 Steam 动态口令。你可以把它作为两步验证和双重认证的 OTP 验证器;密钥默认保存在系统 Asset Store,验证码在设备本地计算。

当前版本:1.0.5versionCode 1000005)

应用截图

Important

第二、第四张来自原完整版本,画面包含手表同步入口。公开源码不包含穿戴设备和手表同步能力。第四张“关于应用”截图显示的是原版本 v1.0.4,首次公开源码版本为 v1.0.5

设置页
设置
原完整版本安全与备份页
安全与备份(原完整版本)
验证码空状态
验证码首页
原完整版本关于应用页
关于应用(原完整版本 v1.0.4)
2FA 指南
2FA 指南

截图依次展示主题与安全设置、原完整版本的备份入口、验证码首页、应用能力说明和 2FA 添加指南。公开源码不包含穿戴设备与手表同步。

核心功能详解

扫码添加账号

扫描标准 otpauth 二维码即可添加双重认证账号,也支持识别 Google Authenticator 迁移二维码,方便从已有验证器迁移多个账号。

手动添加账号

当服务只提供文本密钥时,可以手动录入账号名称、发行方和密钥。项目支持 TOTP、HOTP 和 Steam 账号类型。

本地动态口令

验证码在设备本地生成,不需要把密钥发送到业务服务器。TOTP 按时间周期更新,HOTP 按计数器生成,Steam 类型用于兼容对应的验证码格式。

账号整理

支持搜索、置顶、编辑和分组管理账号。账号较多时,可以通过分组和搜索快速找到当前需要的动态口令。

密钥与访问保护

密钥默认写入 HarmonyOS 系统 Asset Store,不以普通配置文本保存。你还可以启用人脸解锁,在启动或返回应用时验证身份。

备份与恢复

可以选择部分账号导出为明文 JSON,也可以从备份文件导入。明文备份包含 2FA 密钥,必须加密保存,不能上传到 Issue、聊天记录或公共网盘。

桌面服务卡片

可以把常用验证码添加到 HarmonyOS 桌面服务卡片,减少进入应用的操作。卡片显示当前验证码,但不会保存明文密钥。

外观与反馈

支持浅色、深色和跟随系统主题。遇到问题时,可以通过应用内反馈入口打开系统邮箱并生成预填邮件。

可选华为云空间

仓库保留华为云空间同步源码,公开构建默认关闭入口、权限和初始化。开发者必须配置自己的 AppGallery Connect 应用与 Client ID 后才能启用。

公开版边界

本仓库不包含穿戴设备与手表同步,也不包含:

  • 穿戴设备应用。
  • 手机向手表发送账号或验证码的实现。
  • WearEngine 集成、路由、权限和测试。
  • 原应用 Bundle Name、正式 Client ID、证书、Profile 或签名密码。

otp_core 继续保留,因为手机端 OTP 算法、Asset Store 和安全策略依赖它。该模块中的穿戴专用实现已经删除。

快速开始

环境要求

  • DevEco Studio 6.1.1 Release
  • HarmonyOS SDK 6.1.1(API 24)
  • Node.js 20 或更高版本,用于源码合约测试

获取源码

git clone https://github.com/agiledesign-ai/onekey-authenticator.git
cd onekey-authenticator
ohpm install --all
node --test tests/*.test.mjs

使用 DevEco Studio 打开仓库,根据本机设备创建调试签名,然后构建 entry 模块。仓库不提供任何正式签名材料。

华为云空间

公开构建默认执行以下限制:

  • cloudStructuredDataSyncEnabledfalse
  • 不声明网络和分布式数据同步权限。
  • 不包含 client_id
  • 不显示云空间入口,也不初始化云服务。

需要启用时,必须创建自己的 AppGallery Connect 应用并完成全部配置。参见华为云空间配置指南。不要提交自己的 Client ID 或签名材料。

数据与隐私

  • 默认不发起业务网络请求,也不包含统计 SDK 或远程配置。
  • 验证码在本机生成,密钥默认保存在系统 Asset Store。
  • 桌面卡片会显示当前验证码,但不会保存明文密钥。
  • 导出文件是明文 JSON。泄露备份文件等同于泄露 2FA 密钥。
  • 不要在 Issue、Pull Request、日志或截图中提交真实密钥、二维码和备份。
  • 请保留各服务提供的恢复码,避免设备损坏后无法登录。

1.0.5 更新

  • 首次公开源码版本。
  • 使用独立公开 Bundle Name。
  • 移除穿戴设备和手表同步实现。
  • 移除正式签名与原应用 Client ID。
  • 华为云空间源码保留,但在公开构建中默认关闭。
  • 纳入建议反馈页面。
  • 增加 Apache-2.0、DCO、社区模板和开源边界检查。

测试

# Node 源码合约和公开边界
node --test tests/*.test.mjs
node scripts/open-source-audit.mjs

# ArkTS 单元测试
hvigorw test --mode module \
  -p module=entry@default \
  -p product=default \
  --no-daemon \
  --no-incremental

构建成功不代表已经完成真机、云空间或应用市场验证。相关变更应在支持的真机上单独验证。

贡献

请先阅读 CONTRIBUTING.mdCODE_OF_CONDUCT.md

本项目使用 DCO。提交时请执行:

git commit -s -m "feat: describe your change"

安全漏洞请按照 SECURITY.md 私下报告,不要创建公开 Issue。

仓库关系

Issue、Pull Request 和版本发布以 GitHub 为准。

联系与定制

  • 微信:petalmailo
  • 邮箱:halolion@petalmail.com

添加微信时请说明来源、联系方式和咨询原因。可联系应用定制、项目合作与技术咨询。

许可证

项目代码依据 Apache License 2.0 开源。贡献者还需遵守 DCO。项目名称、图标、截图和作者身份不得用于暗示作者对衍生产品的背书。

项目介绍

HarmonyOS 鸿蒙原生 2FA 验证器,支持 TOTP、HOTP、Steam 动态口令、扫码导入、本地安全存储和桌面服务卡片。GitHub 主仓库的同步镜像。

定制我的领域