- Photo Image Files: BMP/PNG/TIFF/PPM/JPEG
- Audio Files: PCM based lossess
- Vidio Files: (still working)
- Big file support: use disk cache (4G limit on win32)
- Encryption: AES/SEED/CAMELLIA/BLOWFISH/CAST/IDEA/RC4/3DES
- 向各种常见图片文件隐写数据: BMP/PNG/TIFF/PPM/JPEG,
- 只支持RGB或者RGBA、8bits/channel的真彩色图片
- (其实上述也可以支持的,考虑到非真彩色的图片很少了,不想写)
- 不支持JPEG2K,JBIG
- TIFF各种压缩方法不支持有损压缩
- 向各种音频文件隐写数据:
- 各种位宽的PCM或者PCM无损压缩格式(FLAC、ALAC等等)
- 差分编码等有损压缩不支持
- (其实也可以没有这些限制的,实在不想写了。。)
- MP3还在研究
- 向各种视频文件隐写数据: (still working)
- 不敢讲有一搭没一搭的啥时候做。。。我应该能搞,就是懒得搞
- 支持大文件:
- 目标文件太大可以选择使用硬盘cache
- win32硬盘cache不能大于4G,win64无限制(因为偷懒直接使用了mmap)
- 数据文件最大支持4G
- 各种加密算法支持:
- AES/SEED/CAMELLIA/BLOWFISH/CAST/IDEA/RC4/3DES
- 实现上使用ctr128,8位block的分组加密做了特别的处理
- 目前不打算干的事情:
- 压缩:有各种很好的压缩软件,请自行压缩后再隐写
- 在目标文件上做文件系统支持目录结构:纯属炫技,隐写前不能自己打个包么?
- 代码结构还算凑合吧,有兴趣可以自己fork做做扩展,求提PR
- 无他(唯手熟尔,可能用到一点大学信号处理、信息论知识?),就是各种规则写时域、空域数据的LSB
- 对于JPEG、MP3格式,按一定规则修改频域DCT参数的LSB
- 多种格式选择,一般来讲越隐秘,可写空间越小,可以自由权衡
- 人是否能检测:
- 本质是给原有数据加了一些噪声,如果不是数据塞太多(用了更激进的格式)人眼和人耳还是不好分辨出来的
- 程序是否可检测:
- 如果没有原始文件对比,可能还是挺难的,特别是数据加密之后就是白噪声
- 理论上通过信号处理可以发现白噪声,但是不好讲这些噪声是原来就有的,还是故意加的数据。。。
- 即使用相同的隐写工具,改换了加密口令,数据也是完全不同的,并且没有任何特征(例如MAGIC Number)可循