版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美容院二零二五年度美容仪器租赁及维修服务合同2篇
- 2025年新型铜箔生产线自动化升级改造合同范本3篇
- 二零二五年度城市居民住房按揭贷款合同范本8篇
- 二零二五年度空运货物出口运输及保险服务合同2篇
- 二零二五年度文化产业创新发展贷款合同模板4篇
- 2025年度智慧城市基础设施搭建委托协议4篇
- 2025年度个人二手车买卖合同范本标准版4篇
- 颤音音响发生器课程设计
- 2024碎石加工厂产品质量追溯体系建立合同范本3篇
- 单元四吊顶与隔墙工程
- 第22单元(二次函数)-单元测试卷(2)-2024-2025学年数学人教版九年级上册(含答案解析)
- 蓝色3D风工作总结汇报模板
- 安全常识课件
- 河北省石家庄市2023-2024学年高一上学期期末联考化学试题(含答案)
- 2024年江苏省导游服务技能大赛理论考试题库(含答案)
- 2024年中考英语阅读理解表格型解题技巧讲解(含练习题及答案)
- 新版中国食物成分表
- 浙江省温州市温州中学2025届数学高二上期末综合测试试题含解析
- 2024年山东省青岛市中考生物试题(含答案)
- 保安公司市场拓展方案-保安拓展工作方案
- GB/T 15843.2-2024网络安全技术实体鉴别第2部分:采用鉴别式加密的机制
评论
0/150
提交评论