FreeOTP 使用指南:手机上的安全门钥匙

系统工具 ·约 8 分钟 ·記筆記的貓:團子

FreeOTP 是什么

FreeOTP 是一款运行在手机上的身份验证器 App,用来给你的各种账号加上"双重验证"——简单说就是登录时除了输入密码,还要打开 App 看一眼,把上面显示的 6 位数字输进去,两次都对才能登录成功。

它的核心定位是本地安全:所有密钥只存在你手机里,不上传任何服务器,即使开飞行模式也能正常生成验证码。这款软件由 Red Hat 赞助维护,两端(Android 和 iOS)代码全部开源,任何人都可以审查有没有偷传数据、有没有后门。

适合谁?如果你在意账号安全(主邮箱、密码管理器、GitHub、云服务这些高价值账户),又不想让第三方厂商掌握你的密钥,那 FreeOTP 就是一个稳妥的选择。它支持两种主流协议:TOTP(时间型,每 30 秒自动换码)和 HOTP(计数器型,用一次换一次),几乎所有支持双重验证的网站都能对接。

安装

FreeOTP 安卓版最新 3.1,安装包 10.36M,包名 org.liberty.android.freeotpplus。安装方式有三条路:Google Play 搜索 FreeOTP 直接装;F-Droid 搜索同样可以,F-Droid 的版本与官方源码可复现验证,更适合在意构建透明度的用户;没有商店的情况就通过 FreeOTP下载 获取 APK 文件手动安装,记得在系统设置里给浏览器或文件管理器开启"允许安装未知来源应用"权限。

iOS 用户去 App Store 搜 FreeOTP 即可,Android 和 iOS 是两个独立仓库、各自维护更新,但功能基本一致。

首次启动不需要注册、不需要登录、不需要联网,打开就是一张空白卡片列表。建议先在设置里加上锁屏密码或生物识别(指纹/面容)锁住 App——毕竟手机丢了别人可不能随便打开你的验证器。

它到底是干嘛的

打个生活化类比:你家门有两道锁——密码锁是第一道(你的网站登录密码),第二道是门口的临时门卡(FreeOTP 每次生成的 6 位数)。只有两道都对上,人才能进门。

为什么要两道锁?因为密码可能撞库、可能被钓鱼邮件骗走、可能被键盘记录软件偷到。但 FreeOTP 的门卡不一样:

  • 密钥存在手机本地,网站服务端也存一份,两边同时算出同一个数才对得上
  • 每 30 秒自动换一张新门卡,旧的瞬间作废
  • 即使手机被飞行模式、被断网,它还是能正常出码

核心界面非常干净——打开就是一串令牌卡片,每张显示网站图标、账号名、6 位数字和一个倒计时圆环。点一下卡片数字会临时显示完整,长按卡片弹出菜单可以删除、手动同步时间、查看参数。

五分钟上手:从打开到完成第一个绑定

假设你想给 GitHub 开启双重验证,跟着走一遍:

第一步:打开 FreeOTP,点右下角 + 号屏幕上会弹出一个相机取景框,提示"扫描二维码"。这个二维码不是广告,是你要绑定的那个网站给你的——比如 GitHub 设置页里开启 2FA 时会生成它。

添加令牌扫码界面

第二步:去 GitHub 设置页,让它生成二维码打开 GitHub → Settings → Password and authentication → Two-factor authentication,选"Add authentication app"。GitHub 会弹出一个二维码,把手机相机对准它,FreeOTP 会自动识别并弹出确认框:令牌名称填的是网站给的 label,你可以改得更清楚(比如改成"GitHub-主账号"),也可以直接默认。点"保存"。

第三步:回 FreeOTP 看刚生成的卡片一张新卡片出现在列表里,显示 GitHub 的图标、你刚才起的名字,中间是 6 位数字。注意那个圆环在转圈——转完一圈数字就换一轮,30 秒周期。别等它转完再输,网站服务端容忍前后各一个窗口,当前码输不进去就先等下一轮。

令牌卡片列表界面

第四步:把数字填回 GitHub 的输入框 GitHub 页面此时正在等你输入"authenticator app 生成的 6 位数"。对着 FreeOTP 念出来填进去,GitHub 会自动验证,成功后让你存恢复码——这一步非常重要,恢复码抄下来存好(比如打印出来放保险箱,或者存进离线密码管理器),手机丢了就要靠它救回来。

到这里,你已经完成了第一个双重验证绑定。下一次 GitHub 登录时,输完密码就会跳出来让你填 FreeOTP 里看到的那串数字。

上手后先玩这三个功能

手动同步时间

有时候你发现码一直填不对——不要慌,八成是手机时钟和服务器有偏差。TOTP 对时间敏感,手机时间慢或快超过一分钟,两边算出的数就对不上。长按出问题的那张卡片 → 菜单里选"重新同步",App 会用网络时间重新对齐。你会看到屏幕上弹出一个短暂的加载提示,然后恢复正常。

手动添加令牌(扫码失败时)

不是所有网站都有二维码——某些自托管服务、或扫码被墙的场景,会让你手动填密钥。FreeOTP 同样支持:点 + 号 → 右上角三个点 → "手动添加"。你需要填三样东西:标签(label,就是卡片显示的名字)、密钥(secret,网站给你的那串 BASE32 字符)、和算法参数(TOTP/HOTP、位数、哈希——一般用默认值就行)。填完保存,卡片立刻出现在列表里。

备份与恢复

FreeOTP 默认不云同步——这是它的安全模型决定的。但你可以手动备份:在设置里选"导出令牌",会生成一个加密的备份文件(需要你设一个主密码保护)。换机时在新手机上同样的设置入口选"导入",输主密码就能把全部令牌还原回来。记住:恢复码和备份文件要分开存,一个丢了还有另一个。

小白的三个常见疑问

"为什么我的码总是不对?" 90% 是时钟问题。进手机系统设置 → 日期和时间 → 确保"自动使用网络提供的时间"是开着的。如果已经开着还是不对,就用刚才说的"手动同步时间"功能强制对齐。剩下 10% 可能是密钥输错了(手动添加时手滑多敲少敲一个字符),删了重绑就行。

"换手机怎么办?密钥会不会丢?"两条路:一是用 FreeOTP 的导出/导入(主密码自己设好),二是每绑定一个网站时网站都给过你的恢复码——恢复码不依赖任何 App,手机全碎了只要恢复码存好就能在新手机上重新绑定。别等手机真丢了才想起问这个。

"FreeOTP 会收集我的数据吗?"不会。源码公开在 GitHub,任何人可以审计它有没有联网、有没有上传数据。它的网络请求只发生在手动同步时间和主动检查更新时,密钥本身永远只存在本地 Keystore 里。这也是 Apache 2.0 开源许可的意义——信任不来自厂商承诺,来自你能自己验证的代码。

写在最后

双重验证不是万能的,但它是你能花最少力气(五分钟装 App + 每次登录多看一眼手机)换来的、最划算的一道安全墙。FreeOTP 作为开源、本地、零数据收集的选择,适合把它安在你的主邮箱、密码管理器、GitHub 这些"丢不起"的账户上。普通账号(论坛、购物平台)可以不用,或者跟云同步验证器混搭——灵活组合才是实际的安全策略。

本文為個人基於網路公開資料整理編寫,非官方內容,僅供學習交流參考;軟體版權歸原作者所有,請支持正版;使用過程中遇到問題請查閱官方管道,本文不承擔任何責任。

團子還試過這些