当前位置:文档之家› 工作报告之信息隐藏实验报告

工作报告之信息隐藏实验报告

信息隐藏实验报告【篇一:合肥工业大学信息隐藏实验报告完整代码版】计算机与信息学院专业班级学生姓名及学号课程教学班号任课教师实验指导教师实验地点20~20学年第学期实验1 bmp位图信息隐藏一、实验目的学习bmp格式文件,并编程实现对位图文件信息隐藏二、实验要求将txt文件嵌入bmp 文件中三、问题描述1、bmp位图文件的格式?2、有哪几种方法隐藏信息,分别采用什么样的数据结构3、随机选取如何避免“碰撞”的出现四、算法思想1、bmp位图文件格式0000h~0001h 2字节 -------------------------bm的asc码0002h~0005h 4字节 -------------------------文件大小102718字节0006h~0009h 4字节 -------------------------全为0000ah~000dh 4字节 -------------------------偏移量 118字节000eh~0011h 4字节 -------------------------位图信息块大小40字节 0012h~0015h 4字节 -------------------------宽 4500016h~0019h 4字节 -------------------------高 450001ah~001bh 2字节 -------------------------恒为01h 00h001ch~001dh 2字节 -------------------------颜色所占二进制位数值04h 00h=4 16色位图001eh~0021h 4字节 -------------------------压缩方式=0无压缩0022h~0025h 4字节 -------------------------图像数据区大小 102600字节0026h~0029h 4字节 -------------------------水平每米多少像素 39个 002ah~002dh 4字节 -------------------------垂直每米多少像素 39个 002eh~0031h 4字节 -------------------------图像所用颜色数=00032h~0035h 4字节 -------------------------重要颜色数=00036h~0076h 64字节 -------------------------颜色表0077h~1913dh 102600字节 -------------------------图像数据区2、(1)、在图片图像数据区的一个连续的数据区采用整字节替换的方法(2)、在图像数据的最后增加文本信息的字节(3)、顺序选取每个文本信息字节的每一位替换图像数据区的一个连续的数据区每个字节的最后一位。

(4)、顺序选取每个文本信息字节的每一位替换图像数据区随机选取一个字节的最后一位。

(5)、首先对颜色表排序,比对顺序选取每个文本信息字节的每一位与图像数据区的一个连续的数据区每个字节的最后一位,如果不一致则不断选取相近的颜色,直到颜色序号二进制最后一位与文本信息的字节最后一位一致。

(6)首先对颜色表排序,比对顺序选取每个文本信息字节的每一位与图像数据区的随机选取的数据区每个字节的最后一位,如果不一致则不断选取相近的颜色,直到颜色序号二进制最后一位与文本信息的字节最后一位一致。

3、为了避免“碰撞”则隐藏程序和解密程序需要通过一个协议,规定一个像素点只能使用一次,即隐藏时对使用过的像素点做记录,如果像素点使用过,则产生下一个随机数。

五、模块划分const int max=500000;char huancun[max];//从文件中读入的字符char txthuancun[max];//txt 中的字符char writehuancun[max];//可以写进文件中的字符串long int writehuancunnumber=0;//准备写入文件中的个数long int huancunnumber=0;//从文件中读出字符个数long int txthuancunnumber=0;void read(const char* realfile)//读入huancun[]void txtread(const char* realfile)//读入txthuancun[]void write(const char*yasuofile)void deal8bit(char kp)//仅仅是显示二进制文件的函数void easyswitch()//简单的从100开始置换void endswitch()int calculate8bit(char kp,int byte)//返回一个字符第byte位为0 或1 从右往左数 int getbegin()//得到偏移量的大小下一个就是数据区的开始即begin的值char chang8bit(char inputtxt,char bmp,int byte)//txt的第byte 被bmp第八位代替从左向右 char changelastbyte(char bmpinput,char txt,int byte) //bmp字节的第8位被txt字节的第byte位代替从左向右void middleswitch()void highswitch() //还没有解决碰撞问题int caculatechar4(char fun[4])//计算4个char的十进制大小权重 1 3 2int caculatelastbit4(char zifu)//计算字节的最后四位代表的十进制数char calculateaddlast4bit(char pt,int colornumber)//第一个字符的前四位保留后四位用这个int 改成的二进制替换class color16//16色颜色元{public: char bit4[4];int myposision;int bitnumber;//char bit[4] 10进制int colornumber;//第几个颜色 0到15号颜色};class colortable16//16色颜色表{public: colortable16()void setcolortable(char fun[4],int colornumber)void exchange()//排序int getnextcolornumber(char zifu)//得到相近颜色的颜色好int mycolortable16number;color16 mycolortable16[17];};void middlehidepluspower132()void highhidepluspower132()void discodehighhidepluspower132()//解密函数六、测试数据隐藏信息:hello markchalse,this is a secretnumber 6424155please put this in an code小刀司令程序过程:【篇二:《信息隐藏技术》实验指导书】《信息隐藏技术》实验指导书北京电子科技学院信息安全系一、概述信息隐藏是一门新兴的学科。

信息隐藏技术,即将秘密信息隐藏在不易被人怀疑的普通文件中,使秘密信息不易被别有用心者发现,当然他们就不易对消息进行窃取、修改和破坏,从而保证了消息在网络上传输的安全性。

数字水印是信息隐藏技术的一个重要分支,水印的理论、嵌入提取算法、攻击等是目前学术界研究的重点问题。

《信息隐藏技术》课程实践性较强,通过实践可以使学生加深对理论知识的理解,掌握并实现常用的信息隐藏方法及攻击方法,提高分析问题、解决问题的实际能力,为进一步深入学习和研究该领域的知识打下基础。

由于课时、实验室条件等限制,不可能做大量实验。

结合授课内容和实际情况,针对水印的嵌入、提取和攻击,设计了12学时的实验。

其它实践内容,以课后作业方式引导学生实践。

按照课程教学大纲,本课程安排4个实验,12学时。

实验一:matlab图像工具箱的使用 3学时验证性实验二:经典水印算法的实现3学时验证性实验三:数字图像水印方案的设计 6学时设计性二、实验环境《信息隐藏技术》实验使用信息安全实验室计算机及网络环境,可以选用实验室已安装的visaul c++或matlab调试环境。

三、成绩评定本课程加大实验考查力度,第一、二个实验各10分,第三个实验20分。

占期末总评成绩的40%。

实验评分参考如下标准:1. 第一、二个实验程序源代码和运行结果占5分,实验报告占5分。

第三个实验中算法设计占5分,程序源代码和运行结果占10分,实验报告占5分。

2. 严禁拷贝、抄袭,出现抄袭,本次实验成绩记为0。

3. 没有按时完成实验,以后补交实验程序和实验报告的,可以酌情扣除1~3分。

成绩评定分为4个级别:a:实验准备充分,上机准时,操作熟练,算法设计合理,能独立编码和调试,按时完成,报告内容齐全,结果和分析正确。

b:实验准备良好,上机准时,算法设计比较合理,操作比较熟练,能在教师指导下顺利地编码和调试,按时完成,报告内容比较齐全,结果和分析正确。

c:实验准备较好,上机准时,操作比较熟练,基本完成实验任务,报告内容基本齐备,结果和分析基本正确。

d:实验准备不足,上机不准时,不能完成实验要求。

四、实验内容、目的、要求及学时安排实验一 matlab图像工具箱的使用一、实验目的该实验为验证性实验。

目的是通过实验使学生了解matlab语言,熟悉并掌握matlab中有关图像处理的常用语句,熟悉matlab使用技巧,能够用matlab语言熟练地对数字图像进行各种处理。

二、实验内容与步骤1、用matlab编写程序,读出标准图像lena.bmp,并在窗口显示。

2、读出该图像中第125行中第125~174列的元素值,将其存储在文件中。

3、绘制lena图像的直方图。

4、读取lena图像的数据,所有像素的最低位清0,在窗口显示修改后的图像。

三、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握matlab编程语言和调试环境。

2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。

3、理论联系实际,认真分析实验结果,回答思考题。

4、实验后写出实验报告,包含实验目的、实验仪器、实验内容与步骤、实验结果及分析、实验体会,并附打印的程序清单(核心代码)。

四、实验所涉及知识点matlab编程、matlab图像处理工具箱五、实验仪器计算机(安装visual c++ 6.0和matlab 6.5以上版本)六、实验验证原理常用的matlab图像处理命令① imread功能:从图形文件中读取图像语法:a=imread(filename,fmt)② imwrite功能:把图像写入图形文件中语法:imwrite(a,filename,fmt) ③imshow 功能:显示图像语法:imshow(a) ④ im2uint8功能:转换图像矩阵为8位无符号整型语法:b=im2uint8(a) ⑤im2double功能:绘制二维图形的函数, 若x,y是向量,必须具有相同的维数,且必须同是行向量或同是列向量,则以第一个变量为横坐标,以第二个变量为纵坐标。

相关主题