@ 2012.03.04 , 23:53
61

更高级的藏文件法:数码隐写术

之前我们提到过怎样把文件藏在图片里怎样往音频里藏图片这两种方法。

前一种弱爆了,仅仅只是把图片压缩包合体一下;后一种太过麻烦,还藏不了复杂的图,而且图像的还原度并不高。今天我们来介绍一种高级一些的方法:数码隐写。

[-]

上面这张图就是一张很有内涵的超载鸡(顺带一提搬到云服务器之后大家没见过超载页面了吧,是不是很想它?),里面藏了……嘿嘿我先不说,看看有没有同学会去解密。

先解释一下原理:图片里每个像素是由红绿蓝三色组成的,每色分别有8比特的位置存放数据,然而它们用不了这么多空间:红占5比特,绿是6比特,蓝也是5比特,因此每个像素我们都能再多塞3+2+3=8个比特(1字节)的数据进去。说到这里你大概也明白了,没错,我们要做的就是把需要隐藏的文件拆散,塞进这些没有被使用的空间里去。


这段就是用于解码的Ruby代码,运行之前请确保你安装了ImageMagick、cURL、mplayer以及Ruby:

#!/usr/bin/env ruby
name='omf'
`curl http://i129.photobucket.com/albums/p240/roveme/jandan/#{name}.png | convert - -compress none #{name}.ppm`
ppm = File.open("#{name}.ppm")
3.times { ppm.readline }
enc = ppm.read.split(' ').map { | x | x.to_i }
bytes = 0.upto(enc.length / 3 - 1).map { | x |
(enc.shift & 7) < < 5\ | (enc.shift & 3) << 3\ | (enc.shift & 7) }.pack('C*') name = bytes.slice!(0, bytes.slice!(0, 1).unpack('C')[0]) out = File.open("#{name}", "w") out << bytes[0, bytes.slice!(0, 8).unpack('q')[0]]

运行以后就会出现一个3gp文件。“3gp”绝对不是三级片的意思,这我会随便告诉你么?

同时也附上加密用的代码,这段比较长所以我就不贴出来了,要的同学点这里下载

本文译自 Chris McKenzie's blog,由译者 ivanchaos 基于创作共用协议(BY-NC)发布。


给这篇稿打赏,让译者更有动力
支付宝打赏 [x]
您的大名: 打赏金额:

0.0
赞一个 (0)

TOTAL COMMENTS: 61+1

[2] 1 »
  1. 1196627

    能否打包下环境

  2. 1196623

    装ruby就算了。还装4个。杯具

  3. walkerxk
    @6 years ago
    1068120

    :8: syntax error, unexpected ‘<‘
    (enc.shift & 7) < < 5\
    ^
    第8行代码错误,去掉两个<之间的空格。

  4. walkerxk
    @6 years ago
    1067958

    搞这么麻烦干嘛?直接cat a.jpg a.rmvb >b.jpg,一个命令的事情,windows也一样,如果你要保密,可以先对a.rmvb加密,当然,最好是用iso,这样比较靠谱,因为iso可以很大,还有bin也可以。

  5. 1067274

    耳朵聋了……

  6. 排队去跳楼
    @6 years ago
    1067236

    我第一次知道3gp还可以理解为三级片。。。。。。。。

  7. 十亿瓦特
    @6 years ago
    1067102

    瞬间有种很牛B的赶脚 有木有~

  8. Oicebot
    @6 years ago
    1067056

    另外,我想说,@ivanchaos 原来也是Linux用户么…… 握爪……

  9. Oicebot
    @6 years ago
    1067050

    @Snow Hertz: 是啊,看到了~~

    ┌(rocky@rocky-P43-ES3G)-(0)-(04:59 下午 一 3月 05)->
    └-(~/桌面)-(11 个文件)–> ./omf
    ./omf:8: syntax error, unexpected ‘<‘
    (enc.shift & 7) < < 5\
    ^

  10. 1066694

    杨总在唱歌?这隐藏技术真是不错

  11. lemontv
    @6 years ago
    1066612

    额,还没人解开么?

[2] 1 »

发表评论


24H最赞