#隐写术 #图像 #图像编码 #隐藏 #秘密 #文本图像

bin+lib stegosaurust

一个用 Rust 编写的隐写术工具

12 个版本

0.4.6 2024年2月7日
0.4.5 2024年2月7日
0.4.4 2022年9月11日
0.4.2 2022年7月6日
0.2.4 2022年6月9日

#334 in 图像

每月下载 26 次

GPL-3.0 许可证

7MB
1K SLoC

Stegosaurust
隐龙龙

一个简单的图像隐写术工具,用 Rust 编写。

Publish CI

免责声明

⚠️ 这是一个我为了好玩而编写的程序。无法保证密码学安全或数据机密性。请不要使用此程序处理敏感信息。如果您这样做,您将自行承担风险。 ⚠️

简介

轻松将消息编码到图像中

echo "text to hide" | stegosaurust enc --output encoded_image.png image.png
stegosaurust enc --decode encoded_image.png 

请参阅下面的示例以获取更多用法。

用法

🦕 stegosaurust 0.4.6
Hide text in images, using rust.

USAGE:
    stegosaurust <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    disguise    mask all files in a directory using steganography [aliases: dsg]
    encode      encode files using steganography [aliases: enc]
    help        Prints this message or the help of the given subcommand(s)

功能

编码支持多种选项,影响数据的编码方式,包括

  • 压缩
  • base64 编码
  • 使用 AES-256-CBC 加密,需要提供 key
  • 位分布 - 如何将编码位分布到用于编码的图像中
    • sequential - 从左上角逐像素编码数据
    • linear - 将数据编码到从开始到结束均匀分布的像素中
  • 位编码方法
    • 最低有效位 (lsb) - 始终将数据位编码到每个像素的颜色值的最低有效位
    • 随机有效位 (rsb) - 随机将数据位编码到每个像素的颜色值的最低 n 个有效位之一。选择 n 的大小(1-4)(最低有效位到第四低有效位)并提供一个 seed,该种子用于确定要编码的位

安装

从 crates.io

cargo install stegosaurust

从源码

从源码构建和安装可执行文件。

git clone https://github.com/jj-style/stegosaurust.git
cd stegosaurust
cargo install --path .

# to uninstall :(
cargo uninstall stegosaurust

Docker

docker pull ghcr.io/jj-style/stegosaurust:master
docker run --rm -it -v $PWD:/data stegosaurust stegosaurust enc --decode /data/image.png

示例

以下示例假设您已安装程序(请参阅此处)并且处于仓库目录中(如果未安装,请使用cargo run --代替stegosaurust)。

# how much data can we fit in an image...
stegosaurust enc --decode examples/example-2.png | mpv -

# is there something hidden in the logo on the README?
stegosaurust enc --decode .github/logo.png | xargs python -c "import webbrowser,sys; webbrowser.open(sys.argv[1])"

依赖项

~25–45MB
~555K SLoC