避免Fai的Stepic JPEG

2024-05-14 19:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

在线文件是一个JPEG文件,但为了避免这个事实,我尝试下载它作为一个.psd和一个.bmp文件,但它仍然知道它是一个JPEG。在

他们有没有办法让这个工作,或者我需要一个不同的python模块?在后一种情况下是什么模块。谢谢。在


Tags: 模块文件inimagetxt终端macout
1条回答
网友
1楼 · 发布于 2024-05-14 19:22:54

我主要是把我的评论转换成一个回答后,从行动进一步澄清

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。在

相关问题 更多 >

    热门问题