欢迎来到天天文库
浏览记录
ID:22714728
大小:295.90 KB
页数:8页
时间:2018-10-31
《信息安全实验报告五》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验成绩《信息安全概论》实验报告实验五数字水印实验专业班级计科F1301学号201316010508姓名司如言完成时间2016/5/24一、实验目的理解数字水印的实现原理;通过演示程序加深对数字水印的理解,并完成水印嵌入和检测的代码编写。二、实验内容用演示软件实现在一幅图像中嵌入水印信息,对比嵌入水印前后的图像有无明显变化;用演示软件实现对一幅给定图像进行是否嵌入水印的检测;编写数字水印程序,分别实现水印的嵌入与检测。三、实验环境和开发工具1.Windows7操作系统2.AssureMarkv2
2、.0版3.VC++6.0!i!实验步骤和结果1、数字水印程序演示用AssureMark软件实现做入水印信息,并对水印信息进行检测。2、数字水印程序编写参考给定DLL中关于水印嵌入、提取函数的说明,编写代码分別实现水印的嵌入与检测。(1)调用DLL屮的_ADDWATERN1ARK函数,实现水印嵌入。(2)调用DLL屮的_GETWATERMARK函数,实现水印检测。3、数字水印演示步骤Step1:在AssureMark程序主界谢的“模式选择”域中选择“嵌入水印”,然后单击“打开”按钮,选择要嵌入水印
3、信息的原始图像;单击“保存”按钮。具体操作如下图示:Step2:关闭显示“水印信息嵌入成功”的提示窗口,嵌入水印信息前后的图像对比如图3.2所示,可以看岀W者在视觉上并无明妞差异。图3.2嵌入水印信息前后的图像对比Step3:在程序主界面的“模式选择”域中选择“检测水印”,然后单击“打开”按钮,选择耍检测是杏嵌入水印信息的原始阁像。“提取的水印信息”栏屮显示提取到的水印信息“信息安全1SCC”,如下阁所示:I,AssoreMark嵌入水卬枪则水卬水印信息提取成功4、将编写好的源代码输入计算机并进
4、行调试分析,发现错误,再修改完善,实验所要求的功能。1)给图像添加水印的函数voidCPrj_watermarkDlg::OnBtnImbed(){//打开并读取未嵌入水印的源BMP文件CEiledibEile(m_strEilelmgSrc,CFile::modeRead);DWORDnJPGJLen=0;nJPG_Len=(DWORD)dibFile.GetLengthO:dibFile.Read(pJPGBuf,nJPGLen);//调川DLL中的_ADDWATERMARK函数,实现水印嵌
5、入intretl;memset(WmCoef,0,sizeof(WmCoef));retl=_ADDWATERMARK(pJPG_Buf,nJPG_Len,pBMP—Buf,WmCoef);if(retl==1)//水印嵌入成功,分别用文件仅存嵌入水印后的图什和源DCT系数,以备水印检测使用{AfxMessageBox("水印嵌入成功");CFiledibFile2(mstrFilelmgWater,CFile::modeCreate
6、CFile::modeWrite);dibFile2.Wri
7、te(pBMP_Buf,nJPG_Len);dibEile2.Close0;CFilefCoef("CoefDCT.dat",CFile::modeCreate
8、CFile::modeWrite);fCoef.Write(WmCoef,strlen((char*)WmCoef));fCoef.Close();}elseif(retl=0){AfxMessageBox("水印嵌入失败〃);}dibFile.Close();}2)从图像中提取水印的函数核心实现//WaterMarkDlg.cpp:i
9、mplementationfile^include’’stdafx.h”^include"WaterMark.h"^include"WaterMarkDlg.h"^include"Dib.h〃#ifdef_DRBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTH1SJ4LE[]=_E1LE_;BOOLCWatcrMarkDlg::OnInitDialog(){CDialog::0nTnitDialogO;ASSERT((TDM_AB0UTB0X&Ox
10、FFFO)=TDM_AB0UTB0X);ASSERT(IDM_AB0UTB0XAppendMenu(MFSEPARATOR);pSysMenu->AppendMenu(MFSTRING
此文档下载收益归作者所有