我使用http://github.com/anirudhsama将文本文件隐藏在图像中,但它能正常工作,我可以使用我的程序再次提取文本文件。
但是,当我以编程方式在Facebook,Twitter和电子邮件中共享图像时,该共享图像无法正确解码,因此我无法恢复该文件。
我按如下方式检索图像:
UIImage *finalImageWithStegno = [UIImage imageWithContentsOfFile:fileName];
答案 0 :(得分:5)
我怀疑是上传到网站时的图像压缩。检查此问题的一种简单方法是在封面图像中隐藏消息(获取隐秘图像)。在网站上传图像并下载。将原始隐秘图像与下载的图像进行比较。如果它们不同(逐字节),那就是你的问题。
通过快速查看代码,应用程序似乎隐藏了空间域中的数据,这不是很健壮。您的消息直接隐藏在图像像素中,如果它们发生变化(由于有损压缩,模糊等),您的消息将会丢失。对此的解决方案是隐藏频域中的数据。另一种解决方案是使用不会被压缩的文件类型上传图像?我不太了解网站如何处理图片,所以第二个建议可能是不可能的。
在任何情况下,如果上传到网站会扭曲图片,请四处寻找可以为您服务的其他应用,除非您可以自行编码。然后我们就可以了解细节。 :)
答案 1 :(得分:0)
您的算法不健全。使用Transform域Stegnography在重新编码时保留信息。您可以选择嵌入DCT系数或DWT系数以获得更好的稳健性。