📄 diyinfo.txt
字号:
05611-0520054-19
丁于
DevilDiy
实验要求
读懂LSB算法,独立编程实现,运行自己的程序,将自己的学号、姓名以及个人对本次课程的学习体会等信息隐藏入给定的原始载体(bupt.bmp),保存伪装载体,提交隐藏及提取算法程序。Bupt.bmp图片说明:该图片为8位灰度位图图片,尺寸为1024×360像素
实验结论和心得
参考文件:bmp文件格式.doc
信息隐藏( Information Hiding)又称为信息伪装,是指在不使信息载体本身发生显著变化的前提下,将需要保密传递的信息隐藏到载体中,从而达到隐蔽传递目的的技术。
这次实验的主要目的是利用LSB(时域隐藏算法)来完成对个人信息隐藏和提取。首先了解了位图文件的基本知识,因为黑白的位图文件每个像素点的灰度值是从0到255,它吧图片信息分成8个层每个层用8位2进制表示。从高到低一共8个平面,其中,最低的1-2个平面上基本是噪声,所以当这两层的信息变化时,人的视觉将察觉不到图片的变化。所以可以通过位图的这一特性来隐藏信息。
程序中,对信息文件的读取是以字符形式读取的,1个字节8bit,然后分成4组每组2bit隐藏。由于TXT文件最后的结束符是-1(EOF)不属于ASCII码内容,而且-1在机器里是以补码的形式存储int类型的话是1111111111111111,而11111111作为一个字节时是255所代表的ASCII符号是blank(ffh).所以没有利用这个符号作为文件结束标志。而是利用了ASCII码的07H蜂鸣声做结束,因为在文件读入时是不可能读到蜂鸣声的,这样在提取隐藏信息时当遇到07H时就表示文件写入可以结束。
位图文件的数据块是从00000436H~000543a7H大小:368642个字节,每4个字节可以对需要隐藏的一个信息进行隐藏。所以可以对921650个字节的信息隐藏,也就是可以存那么多字符,对于中文汉字来说,也就是460825个汉字,足够了,如果是分成8组每次1bit隐藏信息的话,只修改最后一个图层信息,可以存230412个汉字。
实验过程中曾经遇到过这样的问题:当一个文件以 “rb+”打开时,一旦读了一个字节修改该后,程序会自动将这个字节的内容写入当前位置。后来才真正发现其精髓,分开使用只读和只写打开两个文件,避免出现上述问题。
经过这次实验,我进一步了解了信息隐藏技术,对后续课程的研究和学习大有帮助。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -