background image

基本上 5 个最高面含有视觉可见的有意义的信息,在其余的位面中几乎没有任何视觉信

息,这些位面所显示的只是图像中很细小的局部,在很多情况下,它们可看作噪声 正因
为图像具有位面这种性质,因此信息往往隐藏在不为人视觉所察觉的位置,这样位面就
为信息隐藏提供了一种很好的实施方案。将信息隐藏在这些看似噪声的位置,其对图像的
破坏就不会太大,当然,在嵌入信息之前,首先要选择好信息具体加入的位面位置,不
能将信息加入在存在图像视觉信息的位面上,因此,一般的 LSB 算法中,信息一般加在
图像的后 4 位。
  (1)嵌入秘密信息的具体步骤:
  第一步:读入载体文件,并显示它;
  第二步:决定载体的 LSB 及嵌入的位数,本文采用嵌入图像中所有象素的最后一位,
即第 8 位;
  第三步:对载体图像做预处理,置其 LSB 为 0;
  第四步:将秘密信息以 ACILL 码的形式读入,并存储;
  第五步:在每一个象素的第 LSB 位上,存储秘密信息的一个 bit;
  第六步:显示嵌入秘密文件的图像;
  (2)读取秘密信息的具体步骤:
  第一步:读入含有秘密文件的图像;
  第二步:得到每一个象素点的 LSB 位;
  第三步:由每 8 个 LSB 位组成一个 ASILL 还原秘密信息。
  实现起来其实很简单,无论使用哪种理论模型,大体都是利用数据偏移罢了,偶用
的内部嵌入法,大家可以根据自己的需要变更偶的代码,也欢迎大家创造的隐藏方法,
那位大侠有时间更改的话给偶也寄一份,我的 Email:ceponline@yahoo.com.cn。
  本类从功能上讲,可以把任意文件(不能超过 bmp 文件大小)隐藏到 BMP 图片中,
图片大小基本不变,浏览图片也看不出变化。当然,也可以把隐藏在图片中的文件提取出
来。
  代码如下,由 3 个类构成:
  BitmapInput.java
  package org.loon.framework.test.encode;
  import java.awt.image.BufferedImage;
  /** *//**
  * * Title: LoonFramework
  * Description:
  *
  * Copyright: Copyright (c) 2007
  *
  * Company: LoonFramework
  *
  * @author chenpeng
  * @email:ceponline@yahoo.com.cn
  * @version 0.1
  */
  public class BitmapInput {