信息安全实验报告五.doc

信息安全实验报告五.doc

ID:51031626

大小:1.59 MB

页数:7页

时间:2020-03-17

信息安全实验报告五.doc_第1页
信息安全实验报告五.doc_第2页
信息安全实验报告五.doc_第3页
信息安全实验报告五.doc_第4页
信息安全实验报告五.doc_第5页
资源描述:

《信息安全实验报告五.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验成绩《信息安全概论》实验报告实验五数字水印实验专业班级计科F1301学号201316010508姓名司如言完成时间_2016/5/24一、实验目的理解数字水印的实现原理;通过演示程序加深对数字水印的理解,并完成水印嵌入和检测的代码编写。二、实验内容用演示软件实现在一幅图像中嵌入水印信息,对比嵌入水印前后的图像有无明显变化;用演示软件实现对一幅给定图像进行是否嵌入水印的检测;编写数字水印程序,分别实现水印的嵌入与检测。三、实验环境和开发工具1.Windows7操作系统2.AssureMarkv2.0版3.VC++6.0四、实验步骤和结果1.数字水印程序演示用AssureM

2、ark软件实现嵌入水印信息,并对水印信息进行检测。2、数字水印程序编写参考给定DLL中关于水印嵌入、提取函数的说明,编写代码分别实现水印的嵌入与检测。(1)调用DLL中的_ADDWATERMARK函数,实现水印嵌入。(2)调用DLL中的_GETWATERMARK函数,实现水印检测。3、数字水印演示步骤Step1:在AssureMark程序主界面的“模式选择”域中选择“嵌入水印”,然后单击“打开”按钮,选择要嵌入水印信息的原始图像;单击“保存”按钮。具体操作如下图示:7图3.1嵌入水印信息设置Step2:关闭显示“水印信息嵌入成功”的提示窗口,嵌入水印信息前后的图像对比如图3

3、.2所示,可以看出两者在视觉上并无明显差异。图3.2嵌入水印信息前后的图像对比Step3:在程序主界面的“模式选择”域中选择“检测水印”,然后单击“打开”按钮,选择要检测是否嵌入水印信息的原始图像。“提取的水印信息”栏中显示提取到的水印信息“信息安全ISCC”,如下图所示:水印信息提取成功4、将编写好的源代码输入计算机并进行调试分析,发现错误,再修改完善,最终实现实验所要求的功能。1)给图像添加水印的函数voidCPrj_watermarkDlg::OnBtnImbed(){//打开并读取未嵌入水印的源BMP文件CFiledibFile(m_strFileImgSrc,CF

4、ile::modeRead);DWORDnJPG_Len=0;nJPG_Len=(DWORD)dibFile.GetLength();dibFile.Read(pJPG_Buf,nJPG_Len);//调用DLL中的_ADDWATERMARK函数,实现水印嵌入intret1;memset(WmCoef,0,sizeof(WmCoef));7ret1=_ADDWATERMARK(pJPG_Buf,nJPG_Len,pBMP_Buf,WmCoef);if(ret1==1)//水印嵌入成功,分别用文件保存嵌入水印后的图片和源DCT系数,以备水印检测使用{AfxMessageBox

5、("水印嵌入成功");CFiledibFile2(m_strFileImgWater,CFile::modeCreate

6、CFile::modeWrite);dibFile2.Write(pBMP_Buf,nJPG_Len);dibFile2.Close();CFilefCoef("CoefDCT.dat",CFile::modeCreate

7、CFile::modeWrite);fCoef.Write(WmCoef,strlen((char*)WmCoef));fCoef.Close();}elseif(ret1==0){AfxMessageBox("水印嵌入失败");}d

8、ibFile.Close();}1)从图像中提取水印的函数核心实现//WaterMarkDlg.cpp:implementationfile#include"stdafx.h"#include"WaterMark.h"#include"WaterMarkDlg.h"#include"Dib.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;……BOOLCWaterMarkDlg::OnInitDialog(){CDialog::OnInitDialog();ASSER

9、T((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty())7{pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->Append

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。