抗压缩 抗缩放 抗轻度 PS 抗微信非原图 图片加密隐写

zzy8200 6月前 80

重新写了一下( 90%+ code) https://www.v2ex.com/t/391928

现在能做到色块不那么明显,更抗压缩。另外新增可以抗重度缩放 抗轻度 PS 。 这次写 code 加了很多注释,欢迎各位拿去做二次开发。

原图: maple

写入数据后进行微信非原图压缩:

maple

如果允许色块再明显一点可以写入后进行轻度 PS, 比如苹果手机风格化:

maple

如果允许色块非常明显还可以抗重度缩放:

maple

前面三张图均能读出正确数据。

DEMO: http://stego.js.org/

GITHUB: https://github.com/zeruniverse/CryptoStego

最新回复 (16)
  • designer 6月前
    引用 2
    支持了
  • jdhao 6月前
    引用 3
    厉害了
  • GPU 6月前
    引用 4
    上面三张图 jpb 我试了都不能读出数据,GitHub 上面的 png 就可以读出。
  • MinQ 6月前
    引用 5
    抗翻拍不?
  • kop1989 6月前
    引用 6
    赞,之前看过类似的数码水印技术。之前看的那个是直接通过转换可以显示人类可读的图像,可抗翻拍、抗裁切。不知道你这个原理是不是在可读图像基础上加了 ocr ?
  • 楼主 zzy8200 6月前
    引用 7
    @GPU 要选 level,上面三张分别是 level 2,3,5
  • 楼主 zzy8200 6月前
    引用 8
    @kop1989 不是 两个不一样。我这个是直接把文字编码写进去的,不是写字的形状
  • kop1989 6月前
    引用 9
    @zzy8200 #7
  • 楼主 zzy8200 6月前
    引用 10
    @kop1989 一定是水印更强啊,毕竟形状你怎么剪,怎么转,或者中间几笔断了,人都能认出来。编码的话错一个 bit 数据就不对了
  • kop1989 6月前
    引用 11
    @zzy8200 #9 受教了
  • 楼主 zzy8200 6月前
    引用 12
    不抗。位置信息必须完全一致,所以也不抗裁剪。这个问题对隐写较难,可能你需要的是图片水印。
  • 楼主 zzy8200 6月前
    引用 13
    @MinQ 回复见#11
  • vertigo 6月前
    引用 14
    巧了,我前段时间也写了一个同样内容的小程序,用来做 BwaterMark 的,但是有一种攻击很蛋疼,就是电脑截图,几乎完全对抗加密的,楼主有方法嘛
  • vertigo 6月前
    引用 15
    @MinQ 手机拍屏幕无论在 github 还是百度贴吧,都是人人喊打的操作,肯定不可能
  • 楼主 zzy8200 6月前
    引用 16
    @vertigo 水印的话可以好解很多,毕竟不需要机读。翻拍强行要搞定是可以搞定的,应该有 deep learning 方法
  • no1xsyzy 6月前
    引用 17
    @zzy8200 #9 其实 @kop1989 #5 提到的那个方法更抗各种操作,因为那个方法不是字形直接写上去,而是叠在频域里的,所以可以抗裁剪,因为裁剪不会很明显地影响频域信息。
    抗缩放抗裁剪抗滤镜,不过还是不抗翻拍,因为摩尔纹+扭曲变形,一旦翻拍不太可能再找出频语水印。
    你这个倒是可以用一些方式去做 calibration 复原,根本用不到 Deep Learning……
  • 游客
    18
返回