图片加密隐写 JS 库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zzy8200
V2EX    分享创造

图片加密隐写 JS 库

  •  
  •   zzy8200
    zeruniverse 2016-05-13 17:23:20 +08:00 via iPhone 8802 次点击
    这是一个创建于 3444 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下午工作不饱和(明明很饱和……)写的。功能就是把一段文字信息写进图片里。使用 canvas 实现所以只能在支持 html5 的浏览器上用。库不依赖任何其他 JS 库。

    特点:

    1. 只改变 RGB 通道的最低位,因此隐写后的图片跟原图几乎无视差。
    2. 对所有最低位进行随机化初始,达到混淆目的。
    3. 信息非线性储存,按位调用 hash 函数决定储存位置。(密码决定 hash 函数)

    DEMO : http://zeruniverse.github.io/CryptoStego
    Source: https://github.com/zeruniverse/CryptoStego

    第 1 条附言    2016-05-14 06:31:53 +08:00
    更新了库,添加了快速傅立叶模式,对抗各种图片压缩
    第 2 条附言    2016-05-14 13:30:03 +08:00
    果然手撸快速傅里叶容易 GG 。。。现在修复了快速傅里叶中的一个 BUG ,结果图片应该不会特别奇怪了
    24 条回复    2017-08-29 16:35:08 +08:00
    imn1
        1
    imn1  
       2016-05-13 17:33:01 +08:00
    直接感谢
    dapang1221
        2
    dapang1221  
       2016-05-13 17:33:19 +08:00
    已 Star ,老司机的发车神器
    zzy8200
        3
    zzy8200  
    OP
       2016-05-13 17:34:47 +08:00 via iPhone
    @dapang1221 哎呀 你们不要说出来啊 闷声发大财……
    kokdemo
        4
    kokdemo  
       2016-05-13 17:40:27 +08:00
    老司机是厉害,就是这个界面磕碜了点……
    50vip
        5
    50vip  
       2016-05-13 17:41:48 +08:00
    zzy8200
        6
    zzy8200  
    OP
       2016-05-13 17:41:53 +08:00 via iPhone
    @kokdemo 我就是来展示下我的库么……而且匆匆忙忙写的,甚至还没 debug 过 gg ……
    rubyvector
        7
    rubyvector  
       2016-05-13 17:51:18 +08:00
    致敬原创党.已收藏,感谢哟
    zzy8200
        8
    zzy8200  
    OP
       2016-05-13 18:12:40 +08:00 via iPhone
    @50vip 嘛 原来已经有 php 版了……
    ghostheaven
        9
    ghostheaven  
       2016-05-13 19:03:06 +08:00 via Android
    大学上过一门课,就是信息隐藏( information hiding ),原理差不多,不过是修改离散变换后数据,然后再逆变换回来。另外需要做一些容错,并添加高斯噪音。加密解密需要一个 key , key 不正确的时候,由于噪音的存在和这种加密的方法,根本无法判断图片中是否存有信息,防止嗅探。
    优点是图片经过简单画质压缩或少量缩放后信息仍可读,没有 key 就无法判断信息的存在,不会被嗅探到图片被加密。
    缺点是图片经过裁剪,过度压缩或缩放,就无法读取了。
    方法同样适用于音频文件。
    50vip
        10
    50vip  
       2016-05-13 19:06:34 +08:00
    @zzy8200 Javascript 的,代码没有混淆,在调试工具中可以看到~~~
    billlee
        11
    billlee  
       2016-05-13 19:49:03 +08:00
    看了楼主的描述,感觉 JPEG 编码过后什么都没了。试了一下,果然如此。
    应该在频域上做的。
    imn1
        12
    imn1  
       2016-05-13 20:25:42 +08:00
    steganography 好像是基于一个著名的“老旧”开源库 steghide(@sf.net)
    能隐藏的不仅文本,还有音频
    linux , windows 都有
    imn1
        13
    imn1  
       2016-05-13 20:28:59 +08:00
    切,居然加了 link ,是位于 sf.net 上的 steghide
    不少同类 android app 都用了这个库
    zzy8200
        14
    zzy8200  
    OP
       2016-05-14 00:12:04 +08:00 via iPhone
    @billlee JPEG 这种有损压缩在频域上做也会 gg 吧。你根本不知道会压缩到什么程度。

    @ghostheaven 目前就是没有 key 或 key 错误无法知道有没有信息。可能会解密出错误信息
    zzy8200
        15
    zzy8200  
    OP
       2016-05-14 06:29:50 +08:00 via iPhone
    @billlee 已利用快速傅立叶实现抗压缩隐写
    est
        16
    est  
       2016-05-14 10:43:05 +08:00
    外行,不懂。假如用图片隐写术来做一个类似 youtube Content ID 的东西,也就是每个人看到的图片有唯一指纹。用来跟踪图片分发情况。


    那么有没有技术能够抵抗 n 个人把图片合并起来算 RPG 平均值的办法?
    zzy8200
        17
    zzy8200  
    OP
       2016-05-14 11:32:32 +08:00 via iPhone
    @est 不是很懂你在说什么抱歉……

    算平均值有什么用?
    billlee
        18
    billlee  
       2016-05-14 23:20:51 +08:00
    @zzy8200 他说的是数字水印吧。有一个图片的嵌入了不同数字水印的 n 个副本,能否获得一个不含数字水印的副本。

    我觉得是可以的,以前念书的时候做过数字水印的东西。当然也有可能是我们做得太渣了。
    SCaffrey
        19
    SCaffrey  
       2016-05-15 19:35:13 +08:00
    如何实现每个人看到的图片有唯一指纹……
    zzy8200
        20
    zzy8200  
    OP
       2016-05-16 01:50:29 +08:00 via iPhone
    @billlee 加个滤镜水印估计就没了
    fwy1998
        21
    fwy1998  
       2016-10-13 13:12:38 +08:00
    话说...你这个基本不抗截屏..而且也无法自动数据定位...手机拍屏幕直接全跪...
    fwy1998
        22
    fwy1998  
       2016-10-13 13:13:51 +08:00
    阿里内网有这个功能,手机拍屏幕都能读出来...还有很大的进步空间
    zzy8200
        23
    zzy8200  
    OP
       2016-11-02 04:57:09 +08:00   1
    @fwy1998 阿里内部那个叫数字水印。最后是人眼读的。手机拍屏电脑肯定是读不出来的。。。而且你看阿里那个字那么大,也就只能打个员工号了,存不了多少信息。
    fhefh
        24
    fhefh  
       2017-08-29 16:35:08 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1270 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:23 PVG 01:23 LAX 10:23 JFK 13:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86