
tle命令行完整参考tlock时间锁加密/解密的10个参数一网打尽【免费下载链接】tlockTimelock Encryption made practical. The Go tlock library and the tle cmd line tool home to encrypt towards the future.项目地址: https://gitcode.com/gh_mirrors/tl/tlocktlock 是一个 Go 语言实现的**时间锁加密Timelock Encryption**库配套的tle命令行工具让你可以把文件加密到未来——指定的时间点之前任何人都无法解密。本文带你快速掌握 tle 的全部 10 个命令行参数从时间锁加密到解密一篇就够。⏳ tlock 时间锁加密是什么传统加密靠密码丢了密码就废了而 tlock 把时间变成了钥匙加密时指定一个未来时刻比如 10 天后解密依赖 drand 阈值网络按固定频率广播的轮次随机数网络还没走到那一轮时解密会直接报错too early to decrypt相关源码可参见 tlock.go 中的Encrypt/Decrypt核心 API。 30 秒安装 tle纯 Go 编写、无需 CGO两种方式任选# 方式一直接安装最新版 go install github.com/drand/tlock/cmd/tlelatest# 方式二克隆源码本地构建 git clone https://gitcode.com/gh_mirrors/tl/tlock go build cmd/tle/tle.go tle 参数总览表所有参数定义在 commands.go支持短格式和长格式也可通过TLE_前缀的环境变量设置命令行优先#参数长格式作用适用操作1-e--encrypt加密输入到输出省略时默认加密2-d--decrypt解密输入到输出解密3-D--duration指定多久后可解密如10d加密4-r--round指定具体轮次号与-D互斥加密5-f--force强制允许加密到过去的轮次加密6-n--networkdrand API 端点默认主网https://api.drand.sh/全部7-c--chain使用的链链名或链哈希默认 quicknet全部8-o--output结果写入的文件路径默认输出到终端全部9-a--armor输出 PEMage 格式编码的密文加密10-m--metadata以 YAML 显示 drand 网络元数据独立用法模板tle [--encrypt] (-r round | -D duration) [-a] [-o OUTPUT] [INPUT] tle --decrypt [-o OUTPUT] [INPUT] tle --metadata⚙️ 逐参数详解1️⃣-e/--encrypt时间锁加密加密是默认行为通常可以省略。加密逻辑含 PEM 封装与轮次校验在 encrypt.go# 将 data.txt 加密10 天后才能解密 tle -e -D 10d -o encrypted_file data.txt2️⃣-d/--decrypt时间锁解密自 v1.3.0 起解密会自动识别密文里记录的链哈希和网络多数情况只需一个参数# 最简解密结果打印到终端 tle -d encrypted_file # 指定输出文件文件已存在会被覆盖 tle -d -o decrypted.txt encrypted_file解密时不需要也不允许再带-D、-r、-a。未到时间会收到too early to decrypt提示。3️⃣-D/--duration指定解锁时长最常用格式为数字单位支持单位s(秒)、m(分)、h(时)、d(天)、w(周)、M(月)、y(年)最小粒度为秒。解析规则见 encrypt.go# 30 分钟后解锁 tle -D 30m -o locked.txt data.txt # 一年后解锁 tle -D 1y -o timecapsule.tle secret.txt4️⃣-r/--round指定具体轮次如果你已经算好了目标轮次号可以直接指定。轮次到达前无法解密且默认不能指向过去的轮次除非加-f。与-D二选一同时使用会报错# 加密到第 123456 轮 tle -r 123456 -o encrypted_data data.txt5️⃣-f/--force强制加密到过去的轮次正常情况下 tle 会拒绝加密到已过去的轮次。加-f可跳过该校验方便复现或测试场景tle -r 100 -f -o past_data data.txt6️⃣-n/--network指定 drand 网络端点默认使用主网https://api.drand.sh/生产级、高可用。测试也可使用 testnet 端点如https://pl-us.testnet.drand.sh/。注意测试网仅供测试不要存放真实机密数据。tle -nhttps://pl-us.testnet.drand.sh/ -c7672797f548f3f4748ac4bf3352fc6c6b6468c9ad40ad456a397545c6e2df5bf -D 5s -o enc data.txt7️⃣-c/--chain指定链链名或链哈希默认是主网 quicknet 链。建议直接写链哈希而非链名可确保公钥完整性。当网络端点非默认而链哈希仍是默认值时tle 会在终端提醒你可能需要同时指定-c校验逻辑见 commands.go。# 使用 EU 中继 quicknet 链哈希 tle -nhttps://api2.drand.sh/ -c52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971 -D 10s -o enc data.txt8️⃣-o/--output指定输出文件不指定时结果打印到标准输出stdout指定后写入该路径同名文件会被覆盖。输入侧类似不写输入文件时从 stdin 读取也可用-表示标准输入。输入/输出的处理见 tle.go。# 管道流式加密 cat data.txt | tle -D 1h -o one_hour.tle9️⃣-a/--armor输出 PEM 格式密文将密文封装为可读的 age/PEM 编码格式以----AGE-ENCRYPTED----开头便于文本传输。解密 armored 文件时无需再加-a会自动识别tle -a -D 20s -o encrypted_data.PEM data.txt-m/--metadata查看网络元数据独立操作以 YAML 格式输出当前网络的链哈希、最新轮次、公钥和加密方案适合连通性自检tle -m 一条命令体验完整流程用测试网跑一个 5 秒解锁的完整示例加密 → 等待 → 解密# 1. 加密5 秒后可解密 tle -nhttps://pl-us.testnet.drand.sh/ \ -c7672797f548f3f4748ac4bf3352fc6c6b6468c9ad40ad456a397545c6e2df5bf \ -D 5s -o encrypted_data data.txt # 2. 立刻解密会失败too early to decrypt tle -d encrypted_data # 3. 5 秒后再解密即可成功 sleep 5 tle -d -o decrypted_data encrypted_data 进阶技巧叠加密码加密混合加密推荐做法是在时间锁之外再套一层 age 口令加密形成口令 时间双重保险原理是把整段密文当作新数据再做一次时间锁加密# 加密先口令加密再时间锁 10 天 cat data.txt | age -p | tle -D 10d -o encrypted_data # 解密先解开时间锁再解口令 tle -d encrypted_data | age -d -o data.txt同样的思路也可以叠加 PGP 或其他加密工具。⚠️ 参数组合规则速查避坑清单这些规则由 validateFlags 强制校验测试用例见 flags_test.go✅-e、-d、-m三者有且只能出现一个✅ 加密必须提供-D或-r其中之一两者不能同时出现✅-d解密时不能搭配-D、-r、-a✅ 指向过去轮次需加-f否则报round N is in the past✅ 环境变量可用TLE_NETWORK、TLE_CHAIN、TLE_DURATION、TLE_ROUND、TLE_OUTPUT、TLE_ARMOR等命令行参数优先级更高 延伸阅读资料说明README.md官方说明安装、用法、安全说明cmd/tle/tle.go命令入口输入/输出文件处理cmd/tle/commands/commands.go10 个参数的定义与校验逻辑cmd/tle/commands/encrypt.go时长解析与加密执行流程tlock.goGo 库 APIEncrypt / Decrypt / Metadatanetworks/http/与 drand 网络通信的实现 安全提示正式用途请默认使用主网 quicknet 链测试网testnet不安全仅用于学习测试。更多安全细节可参考 SECURITY.md。【免费下载链接】tlockTimelock Encryption made practical. The Go tlock library and the tle cmd line tool home to encrypt towards the future.项目地址: https://gitcode.com/gh_mirrors/tl/tlock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考