32个版本 (21个稳定版本)
1.8.0 | 2024年7月29日 |
---|---|
1.7.1 | 2024年6月19日 |
1.5.0 | 2024年3月12日 |
1.3.0 | 2023年10月10日 |
0.1.7 | 2021年2月21日 |
#20 in 身份验证
每月下载 333次
2.5MB
3.5K SLoC
cotp - 命令行TOTP/HOTP身份验证器
我相信安全至关重要,尤其是在这个数字世界中。我创建了cotp,因为我需要一个最小化、安全且可在桌面上访问的软件来管理我的双因素认证代码。
概述
界面
输入 i
获取一些说明。否则,只需输入 cotp --help
。在首次运行时,您将被提示输入密码以初始化数据库。
TL;DR
# Display all the OTP codes in the interactive dashboard
cotp # select any code with arrow keys, press enter to copy into the clipboard, even in an SSH remote shell
# Add a new TOTP code from a BASE32 secret key
cotp add --label [email protected] --issuer Google
# Add a new HOTP code with custom algorithm, digits and counter
cotp add --label example --type hotp --algorithm SHA256 --digits 8 --counter 10
# Edit the digits of the 4th OTP code
cotp edit --index 4 --digits 8
# List all the codes in JSON format passing password through stdin
echo "mysecretpassword" | cotp --password-stdin list --json
# Extract the first matching OTP code with "google" issuer and copy it into the clipboard
echo "mysecretpassword" | cotp extract --issuer google --copy-clipboard
# Import an encrypted Aegis Database backup
cotp import --path my_db.json --aegis-encrypted
# Export the cotp database
cotp export
兼容性
cotp可以生成符合 rfc6238 和 rfc4226 规范的 TOTP 和 HOTP 代码。此外,还可以自定义设置,如 HMAC算法 和 位数,以与其他双因素身份验证系统提供兼容性。
最新版本还包括对 Steam、Yandex、MOTP 代码的支持。
加密
此程序仅依赖于一个使用 XChaCha20Poly1305 认证加密和 Argon2id 密钥派生的数据库文件。
它还使用 AES-GCM 从加密的Aegis备份中导入。
跨平台
cotp应该容易在大多数使用的平台上编译,但主要在Linux和Windows上进行测试。
安装
Arch Linux和基于arch的发行版
Arch Linux在[extra]存储库中有一个官方包。
pacman -S cotp
另外,如果您希望编译和运行Git HEAD版本而不是当前稳定版本,可以使用cotp-git包,使用常规说明或您喜欢的AUR辅助工具,如paru (paru -S cotp-git
)。
NixOS
查看官方包。
其他Linux发行版和*nix
在开始之前,请检查您是否安装了使用rust编译器所需的构建依赖项。
您需要安装 libxcb-devel 依赖项,这是X11中复制剪贴板所必需的。
- 基于Debian的系统:
sudo apt install libxcb1-dev libx11-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev
- 基于Fedora / RHEL的系统:
sudo dnf install libX11-devel
- Void Linux:
sudo xbps-install -S libxcb-devel
macOS
brew install cotp
Windows
支持使用 x86_64-pc-windows-gnu
和 x86_64-pc-windows-msvc
工具链进行构建。
如果您想使用 x86_64-pc-windows-msvc
,则需要安装Visual C++ 2019 Build Tools
安装完rust工具链后,只需运行 cargo install cotp
即可。
使用crates.io仓库
只需输入 cargo install cotp
等待安装。
克隆GitHub仓库并手动安装
您可以使用以下命令构建cotp
git clone https://github.com/replydev/cotp.git
cargo install --path cotp/
从其他应用程序迁移
cotp支持从各种应用程序迁移TOTP代码。其中一些需要使用以下表中列出的简单Python脚本进行转换。
应用程序 | 如何获取备份 | 需要转换 | cotp参数 |
---|---|---|---|
andOTP | 使用应用程序本身创建备份。 | 否 | --andotp |
Aegis | 使用应用程序本身创建备份。 | 否 | --aegis |
Aegis (加密) | 使用应用程序本身创建加密备份。 | 否 | --aegis-encrypted |
Authy | 从您的手机获取 /data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml 。 |
是 | --authy |
Authy (第二种方法) | 遵循此指南: https://gist.github.com/gboudreau/94bb0c11a6209c82418d01a59d958c93。 | 否 | --authy-exported |
cotp | 使用 cotp export 导出您的数据库。 |
否 | --cotp |
FreeOTP | 从您的手机获取 /data/data/org.fedorahosted.freeotp/shared_prefs/tokens.xml 。 |
是 | --freeotp |
FreeOTP+ | 使用应用程序本身创建备份。 | 否 | --freeotp-plus |
Google Authenticator | 从您的手机获取 /data/data/com.google.android.apps.authenticator2/databases/databases 。 |
是 | --google-authenticator |
Microsoft Authenticator | 从您的手机获取 /data/data/com.azure.authenticator/databases/PhoneFactor 。如果存在,也获取 PhoneFactor-wal 和 PhoneFactor-shm 。 |
是 | --microsoft-authenticator |
OTP URI列表 | 创建一个包含items属性的JSON文件。它将包含一个字符串数组,其中每个元素都是OTP URI。 | 否 | --otp-uri |
如何转换
获取正确的文件后,运行位于此源代码 converters/ 目录中的正确Python脚本。
示例: python authy.py path/to/database.xml converted.json
它将以cotp可读取的JSON格式转换数据库。
要终止导入: cotp import --authy --path path/to/converted_database.json
配置
默认情况下,数据库位于 $HOME/.cotp/db.cotp
。如果您想使用不同的路径,可以使用 COTP_DB_PATH
环境变量。以下是在 bash 中如何操作的示例:
$ COTP_DB_PATH=/home/user/.local/custom-folder/db.cotp /usr/bin/cotp
计划中的功能
目前,没有计划中的功能。如果您需要可以改进软件的新功能,请随时提交问题。
贡献
我创建这个项目是为了满足自己的需求,但如果这个小程序对其他人有帮助,我会很高兴,并且我会感激地接受任何拉取请求。
依赖项
~16–26MB
~395K SLoC