Stegano,一个纯 Python 隐写术模块。
隐写术是一门艺术与科学,它以这样一种方式书写隐藏消息,使得除发送者和预期接收者之外的任何人都不会怀疑消息的存在,这是一种通过隐蔽性实现的安全形式。因此,Stegano 提供的函数仅隐藏消息,而不进行加密。隐写术通常与密码学结合使用。
$ poetry install stegano
你将能够在你的 Python 程序中使用 Stegano。
如果你只想将 Stegano 作为命令行工具安装:
$ pipx install stegano
pipx 会将 Python 包提供的脚本(系统级可用)安装到独立的 virtualenv 中,以将它们与你的系统以及彼此隔离。
提供了一份教程。
如果你想在自己的 Python 程序中使用 Stegano,只需导入相应的隐写技术。例如:
>>> from stegano import lsb
>>> secret = lsb.hide("./tests/sample-files/Lenna.png", "Hello World")
>>> secret.save("./Lenna-secret.png")
>>>
>>> clear_message = lsb.reveal("./Lenna-secret.png")
对于可逆的数据隐藏(提取消息后可精确恢复原始载体),请使用直方图平移(histogram-shifting)技术:
>>> from stegano import rdh
>>> secret = rdh.hide("./tests/sample-files/Lenna-grayscale.png", "Hello World")
>>> secret.save("./Lenna-secret.png")
>>>
>>> clear_message = rdh.reveal("./Lenna-secret.png")
>>> cover = rdh.recover("./Lenna-secret.png") # restores the original image
$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m "Secret Message" -o Lena1.png
$ stegano-lsb reveal -i Lena1.png
Secret Message
$ stegano-rdh hide -i ./tests/sample-files/Lenna-grayscale.png -m "Secret Message" -o stego.png
$ stegano-rdh reveal -i stego.png
Secret Message
$ stegano-rdh recover -i stego.png -o cover.png # cover.png == the original image
$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'Secret Message' --generator eratosthenes -o Lena2.png
消息将按照埃拉托斯特尼筛法所描述的集合散布在图片中。也可以使用其他集合。你还可以使用自己的生成器。
这将使隐写分析变得更加复杂。
$ python -m unittest discover -v
运行静态类型检查器:
$ mypy stegano
欢迎贡献。如果你想为 Stegano 做出贡献,我强烈建议你使用 poetry 将其安装到 Python 虚拟环境中。
如果你愿意并且喜欢 Stegano,可以通过 GitHub Sponsors 进行捐赠:
或使用比特币捐赠至以下地址:
bc1q56u6sj7cvlwu58v5lemljcvkh7v2gc3tv8mj0e
谢谢!
本软件在 GNU 通用公共许可证第三版 下获得许可。
版权所有 (C) 2010-2026 Cédric Bonhomme
更多信息,请参阅作者和贡献者列表。