信息安全试验报告五_第1页
信息安全试验报告五_第2页
信息安全试验报告五_第3页
信息安全试验报告五_第4页
信息安全试验报告五_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、嵌入水印信息前后的图像对比Step3:在程序主界面的“模式选择”域中选择“检测水印”,然后单击“打开”按钮,选择要检测是否嵌入水印信息的原始图像。”提取的水印信息”栏中显示提取到的水印信息“信息安全ISCC",如下图所示:水印信息提取成功4、将编写好的源代码输入计算机并进行调试分析,发现错误,再修改完善,最终实现实验所要求的功能。1)给图像添加水印的函数voidCPrj_watermarkDlg:OnBtnImbed()(打开并读取未嵌入水印的源BMPC件CFiledibFile(m_strFileImgSrc,CFile二modeRead);DWORDnJPG_Len=0;nJPG

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

5、CFile:modeCreate|CFile:modeWrite);dibFile2.Write(pBMP_Buf,nJPG_Len);dibFile2.Close();CFilefCoef("CoefDCT.dat",CFile:modeCreate|CFile:modeWrite);fCoef.Write(WmCoef,strlen(char*)WmCoef);fCoef.Close();elseif(ret1=0)AfxMessageBox("水印嵌入失败");dibFile.Close();2)从图像中提取水印的函数核心实现/WaterMarkD

6、lg.cpp:implementationfile#include"stdafx.h"#include"WaterMark.h"#include"WaterMarkDlg.h"#include"Dib.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE口=_FILE_;7,BOOLCWaterMarkDlg:OnInitDialog()(CDialog:OnInitDialog();ASSERT(IDM_ABOUTBOX&0

7、xFFF0)=IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL)(CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()(pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);SetIcon(m

8、_hIcon,TRUE);/SetbigiconSetIcon(m_hIcon,FALSE);/Setsmallicon/TODO:AddextrainitializationherereturnTRUE;/returnTRUEunlessyousetthefocustoacontrolvoidCWaterMarkDlg:OnOpenFile()(/TODO:AddyourcontrolnotificationhandlercodehereCFileDialogdlg(TRUE,"",NULL,OFN_HIDEREADONLYFN_OVERWRITEPRQMPFN_ALLO

9、WMULTISELECT,"(*bmp)|*.bmp|所有文件(*)|*|",AfxGetMainWnd();/读取图象的文件名CStringfilename;if(dlg.DoModal()=IDOK)/Bitmap2Data()将图象的转换为数据保存在二维数组m_tOriPixelArrayPOSITIONpos=dlg.GetStartPosition();filename=dlg.GetNextPathName(pos);Bitmap2Data();if(hwnd0!=NULL)hwnd0=NULL;if(hSrcDC0!=NULL)hSrcDC0=NULL;if(

10、hDesDC0!=NULL)hDesDC0=NULL;hwnd0=GetDlgItem(IDC_STATIC0);hDesDC0=hwnd0->GetDC()->m_hDC;hSrcDC0=CreateCompatibleDC(hDesDC0);filename=dlg.GetPathName();hBitmap0=(HBITMAP)LoadImage(AfxGetInstanceHandle(),filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);GetObject(hBitmap0,sizeofBITMA

11、P,&bm0);SelectObject(hSrcDC0,hBitmap0);hwnd0->GetClientRect(&rect0);:SetStretchBltMode(hDesDC0,COLORONCOLOR);:StretchBlt(hDesDC0,rect0.left,rect0.top,rect0.right,rect0.bottom,hSrcDC0,0,0,bm0.bmWidth,bm0.bmHeight,+SRCCOPY);show0=TRUE;SetTimer(NULL,50,0);GetDlgItem(IDC_BUTTON2)->EnableWi

12、ndow(TRUE);elseTRACE("错误");CStrings,s0,s1,s2;s.Format("%2d",bm0.bmHeight);s1.Format("%2d",bm0.bmWidth);s0.Format("%d",m_dib->GetBiBitCount();s2="宿主图象"+s0+"位HXW:"+s+"X"+s1;if(pEdit!=NULL)pEdit=NULL;r.left=35;r.top=rect0.bottom+2

13、;r.right=200+r.left;r.bottom=r.top+20;pEdit=newCEdit;pEdit->Create(ES_CENTER|WS_VISIBLE|ES_READONLY,r,this,1);CFont*cFont=newCFont;cFont->CreateFont(16,0,0,0,FW_SEMIBOLD,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,"Arial&quo

14、t;);pEdit->SetFont(cFont,TRUE);pEdit->SetWindowText(s2);,voidCWaterMarkDlg:Operate_Byte(BYTE&operate1,BYTE&operate2,BYTEm_operate)/将m_operate最低四位取出来放到L里最高四位放到H里,/最后将H赋值给operatel最后四位L赋值给operate2最后四位inti;BYTEM=240,t=m_operate;/11110000BYTEH,L,x8,y4;y3=8;y2=4;y1=2;y0=1;for(i=0;i<8;i+)x

15、i=m_operate&1;m_operate>>=1;H=x7*y3+x6*y2+x5*y1+x4*y0;/hightL=x3*y3+x2*y2+x1*y1+x0*y0;/lowoperate1&=M;operate2&=M;operate1+=H;operate2+=L;voidCWaterMarkDlg:PutInWaterMessage()longa,b,c,d;a=ImageHeight;b=ImageWidth;c=WaterHeight;d=WaterWidth;BYTECWaterMarkDlg:Operate_ByteOut(BYTEope

16、rate1,BYTEoperate2)/相对与Operate_Byte()inti=0;BYTEx8,y8,data;for(i=0;i<4;i+)xi=operate2&1;operate2>>=1;/取出最低的四位for(i=4;i<8;i+)xi=operate1&1;operate1>>=1;/取出最高的四位y0=1;y1=2;y2=4;y3=8;y4=16;y5=32;y6=64;y7=128;data=x0*y0+x1*y1+x2*y2+x3*y3+x4*y4+x5*y5+x6*y6+x7*y7;returndata;,voidC

17、WaterMarkDlg:OnOpenW_E_Bitmap()/TODO:AddyourcontrolnotificationhandlercodehereCFileDialogdlg(TRUE,"",NULL,OFN_HIDEREADONLOFN_OVERWRITEPRQMPTN_ALLOWMULTISELECT,"(*bmp)|*.bmp|所有文件(*)|*|",AfxGetMainWnd();if(dlg.DoModal()!=IDOK)return;if(hwnd2!=NULL)hwnd2=NULL;if(hSrcDC2!=NULL)hSrcDC

18、2=NULL;if(hDesDC2!=NULL)hDesDC2=NULL;hwnd2=GetDlgItem(IDC_STATIC2);hDesDC2=hwnd2->GetDC()->m_hDC;hSrcDC2=CreateCompatibleDC(hDesDC2);CStringfile;file=dlg.GetPathName();POSITIONpos=dlg.GetStartPosition();file=dlg.GetNextPathName(pos);Embed2Data(file);hBitmap2=(HBITMAP)LoadImage(AfxGetInstanceHandle()加e,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论