Photo Guard: 将你的图片隐藏在另一张图片下

Photo Guard 是我自己在看到图片隐写技术后写的一个应用。它可以将一张图片隐写到另一张图片中,并对图片内容进行AES256加密。加密后的图片可以存在在系统相册中,正常地传输到iClound。

需要注意的是,通过其他工具发送时,需要选择发送原图,否则会导致图片无法解密,基于具体应用的实现逻辑,有些App传输原图也会出现问题,可以直接查看相册中的照片数据大小,与及传输后的照片数据大小进行对比,目前测试过微信是可以正常传输的。

整个应用只有加密,解密两个功能,开始加密后只需要选择要隐藏的图片和伪装的图片即可,加密解密后自动保存到系统相册。

目前只有iOS应用。

1 个赞

很有意思。可以分享源码吗?我对背后实现逻辑非常感兴趣。

源码就没办法分享了,这个原理就是利用图片隐写技术来实现的,可以搜一下Steganography,有好几种实现方式。图片隐写是不加密,理论上知道采用的隐写方式就能获得被隐藏的数据,为了更安全点,我又对被隐藏的图片数据做了一个AES256的加密,这样只有用户才能够获得隐藏的图片。

想起了 2013 年有用 ahk 写过一个在图片中隐写文本的应用。

具体实现是使用每个像素的 RGB 分量的最低位的那个 bit 来储存信息。

优点是对于文件来说没有插入任何额外的信息段,所有隐写信息都储存在图片本身的像素中,而且基本上不会改变原图片的观感,对于一张 1920x1080 分辨率的图片,最多可以隐写约 759kb 的文本或者二进制,这甚至已经超过了那个 ahk 脚本编译出的二进制大小。

限制跟这个 Photo Guard 一样,传输和保存必须保证像素无损。

@CWord 我上面描述的实现思路也许可以作为参考。

这个方式我之前也考虑过,但由于数据量的限制,后来选了IDAT方案自己做的一个变种,最低有效位方案有个git的源码分享一下。[email protected]:TxL1/SteganoLibIOS.git @CWord

收费软件,你自己可能会付费买,但是谁会付费买软件去解你加密的图片啊,自己跟自己玩呢 ::

加密自己的图片是为了安全,你想和别人分享是另一回事,这就不是一个用来玩的软件。

那么问题来了,我在手机上加密的照片传到了网盘里,在电脑上怎么看?

那只能看什么时候上个电脑端的了

做个PWA应用应该就直接解决跨平台的问题了。

没写过PWA应用,可以研究一下看合不合适