0

我正在尝试在 Mac 终端中使用 stepic 来解码隐写术:

stepic --decode --image-in=goldfish.bmp --out=goldfish.txt

在线文件是 JPEG,但为了规避我尝试将其下载为 .psd 和 .bmp 文件的事实,但它仍然知道它是 JPEG。

他们有什么方法可以完成这项工作还是我需要一个不同的python模块?在后一种情况下是什么模块。谢谢。

4

1 回答 1

0

在 OP 进一步澄清后,我主要将我的评论转换为答案。

Stepic 将信息直接嵌入到图像的像素中。有损格式(例如 jpeg)会改变其中一些像素,从而破坏您的秘密。只有无损格式,例如 bmp 和 png,才适合此应用程序。

由于您的朋友对您的消息进行了编码,并且您是隐写图像的接收者,因此此过程有两个地方出错。您的朋友将图像保存为 jpeg(从文档中不清楚该程序是否允许这样做),或者他是一个好孩子,但是在将其上传到网站后,该网站重新编码为 jpeg。

您应该询问他和/或将非 jpeg 图像上传到网站并下载回来并检查两者之间的文件差异。如果两个文件相同,则以下 python 脚本将逐字节打印 true。

a = open('filename before upload', 'rb').read()
b = open('filename after download', 'rb').read()
print a == b

如果图像保存为 jpeg,只需建议您的朋友使用合适的格式。如果图像在上传过程中被修改,您要么必须使用不同的上传服务,该服务不会以破坏图像的方式重新编码图像,例如保存为不同的格式、裁剪或调整大小,或者您必须使用隐写算法,您的秘密可以通过这种算法在此类修改中幸存下来。这被称为健壮的隐写术,有很多文献描述了这种算法,尽管您可能不容易找到它们的源代码。

如果您对在 jpeg 图像中嵌入秘密特别感兴趣,则必须寻找 jpeg 隐写术。

但是,根据常见问题解答,推荐此类工具或软件被认为是题外话

于 2015-01-03T21:54:49.037 回答