零、前言
如标题所说,这是一个用两张图片共同隐藏和读取一段文字的小工具。
至于为什么要做这个,端午闲在家,可能算是一种特别的浪漫吧哈哈。
二、功能详解
它的作用很简单:
用两张图片共同隐藏一段短文字,读取时也必须两张图片同时在场,才能还原出原文。
单独拿到其中一张图,读不出完整内容。
只有两张图凑到一起,文字才会被恢复出来。
可以拿来藏一些很短的内容,比如:
- 名字缩写
- 纪念日
- 暗号
- 一句很短的话
- 两张情侣头像之间的小彩蛋
- 小范围纪念性质的信息标记
但请注意这是个小玩具,不是专业取证隐写,也不是严肃的加密工具。
三、能解决什么问题?
普通图片水印的问题:
- 显示水印太直白
- 单图隐写太集中
“两张图共同隐藏”的方案:
- 图片 A 里只放一部分信息
- 图片 B 里只放另一部分信息
- 两部分合并后才能还原文字
- 所有处理都在浏览器本地完成
- 不需要后端,不上传图片
四、技术原理简述
详细展开查看
简单说,它不是把完整文字直接塞进某一张图里,而是先把短文字拆成两份。
大致流程:
短文字
↓
编码成 payload
↓
加入版本、长度、校验信息
↓
通过 XOR 拆成两份 share
↓
share A 写入图片 A
share B 写入图片 B
↓
读取时两份重新 XOR 合并
↓
还原文字
也就是说:
单张图 ≠ 原文
两张图 + 工具 = 原文
隐写部分用的是图像频域相关思路,把信息写入图片的中频系数区域,并配合纠错、重复映射、校验等机制,尽量让肉眼看不出明显变化,同时提高普通头像压缩、轻微裁剪后的读取成功率。
五、 已验证的情况
640x640、JPEG 质量90的压缩模拟仍可读取。- 默认写入
crop-v2抗裁剪布局,已验证90%、84%、78%中心裁剪、80%-84%轻微偏移裁剪和裁剪后 JPEG 质量90可读取。
六、项目地址
欢迎 Issue / PR,如果你还有什么建议。
如果你觉得这个项目有点意思或是对你有帮助,欢迎 ✨Star ✨
原始论坛帖子:查看原帖
发表回复