Stepic JPEG规避失败

时间:2015-01-03 20:42:54

标签: python terminal steganography stepic

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

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

在线文件是一个JPEG,但为了避免我尝试将其下载为.psd然后再下载.bmp文件,但它仍然知道它是JPEG。

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

1 个答案:

答案 0 :(得分: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隐写术。

但是,根据常见问题解答,推荐此类工具或软件会被视为off-topic