007_图片文件中的信息隐藏和还原
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
主要算法流程图及代码
4.7.1 嵌入算法流程
(1)嵌入算法流程图4-7-1如下所示:
图4-7-1嵌入算法流程图
(2)嵌入算法编码实现如下:
嵌入隐藏信息的函数实现:
bool ld:: HideInformation(int length) //隐藏信息
{
unsigned int OpAND[8]={128,64,32,16,8,4,2,1};
unsigned int clearzero=254;
for(int i=0;i<length;i++)
{int BitFlag;
for(int j=0;j<8;j++)
{
*data=*data&clearzero;//将位图数据部分的每个字节的最低位清零
BitFlag=(*buffer)&OpAND[j];
if(BitFlag= =0)
*data=*data+0;
else
*data=*data+1;
data+=1;
}
buffer+=1;
}
return TRUE;
}
【www.think58.com计算机毕业论文网】 think58 [资料来源:http://think58.com]
[来源:http://think58.com]4.7.2 提取算法流程
(1)提取算法流程图4-7-2如下所示:
图4-7-2提取算法流程图
(2)提取算法编码实现如下:
提取隐藏信息的函数实现:
bool ld::RevertInformation(int length) //提取信息
{
unsigned int OpAND[8]={128,64,32,16,8,4,2,1};
unsigned int highclearzero=1;
DEbuffer=new char[length];
int i=0;
memset(DEbuffer,0,length);//将DEbuffer中的信息全部初始化为0
while(length!=0)
{
unsigned int sum=0;
for(int j=0;j<8;j++)
{
sum=sum+ (*data&highclearzero) *OpAND[j];
data=data+1;
}
DEbuffer[i++]=(char)sum;
length=length-1;
}
return TRUE;
}
5 系统测试
5.1 运行结果
图5-1-1应用程序Information hiding的运行结果
5.2 测试信息隐藏
在“请输入待隐藏的信息”框中输入你的要隐藏的信息,然后再输入对信息的加密密钥,选择载体图片和隐藏信息后的图片的保存位置。
测试信息隐藏过程中操作步骤如下:
(1)输入的待隐藏的信息;
(2)输入加密信息的密钥;
(3)选择一张24位的bmp图片作为载体图片;
(4)选择隐藏信息后的图片的保存路径;
(5)执行信息隐藏。
测试信息隐藏如下列图示所示:
(1)输入的待隐藏信息为“成都信息工程学院”结果如图5-2-1所示:
图5-2-1输入隐藏信息后的结果
(2)加密信息的密钥为“123456789”;
(3)选择C:\Documents and Settings\Administrator\桌面\2.bmp作为载体图片;
(4)隐藏信息后的图片保存在C:\Documents and Settings\Administrator\桌面\test.bmp目录下, 结果如图5-2-2所示:
图5-2-2输入密钥、载体图片和图片保存路径后的结果
(5)点击“执行信息隐藏”按钮,执行信息隐藏后,就会在指定的路径下(C:\Documents and Settings\Administrator\桌面\test.bmp)生成一张test.bmp图片,结果如图5-2-3所示: [来源:http://www.think58.com]
图5-2-3单击“执行信息隐藏”按钮后的结果
本文来自think58
[资料来源:www.THINK58.com]