#隐写术 #解码 #编解码器 #编码 #命令行工具 #文本

bin+lib ptero-cli

社交媒体文本隐写术 CLI 工具

2 个不稳定版本

0.4.2 2021年1月16日
0.3.2 2021年1月10日

#1592 in 文本处理

自定义许可证

98KB
2K SLoC

Ptero CLI GitHub tag (latest SemVer)


Ptero 是一个 CLI 文本隐写术工具,旨在用于像 Facebook 这样的社交媒体。它提供了一种编码和解码数据的方法。

它实现了这里提出的算法:这里。然而,它还包含了一个扩展的实现,称为 ELUV。有关使用方法的更多信息,请参阅工具的 help

该工具已在 Facebook 的 MessengerTwitter 中进行了测试 - 两种方法都运行正确。您还可以在这里了解更多关于该方法的信息:这里


开发 覆盖率状态 GitHub 分支检查状态 GitHub

Rust 是此存储库中使用的首选语言。默认情况下,您必须安装标准 Rust 工具链才能开始工作。有关更多信息,请参阅官方安装页面

编辑器

我在此项目中使用 VS Code 作为主要编辑器。我建议安装以下扩展

构建

如果您只想构建工件,请运行

cargo build

要通过 cargo 运行二进制文件,您可以发出

# Example with argument
cargo run -- -vv encode -c some_cover_text -d secret

测试和覆盖率

要运行所有测试

cargo test

通过单独的包 cargo-tarpaulin 执行覆盖率检查 - 如果您想这么做,请确保已安装它。要本地运行它,只需

cargo tarpaulin -v

代码风格检查

此项目确保它符合 clippy 规则。要确保一切正常,请运行

cargo clippy

项目结构

此项目包含二进制包和库。有关模块概述,请参阅 lib.rs,有关 CLI 二进制包的入口点,请参阅 main.rs

脚本

比特率测量

scripts 目录中存在两个用于测量比特率的脚本。一个是 bitrate_for_pivot.sh,它用于在随机秘密数据上执行给定次数的平均比特率计算;另一个是 measure_bitrate.sh,它并行启动给定枢轴范围的测量,100次执行和30字节秘密数据。

后者应用于获取结果。例如

./scripts/measure_bitrate.sh 10 40 &> result

应该在项目根目录下运行。请注意,由于封面文本的容量限制,某些秘密可能未嵌入到封面文本中。

依赖项

~7–20MB
~203K SLoC