gif/bmp/jpeg图像开发---------图像内部写入加密字符

来源:互联网 发布:影楼网络销售话术 编辑:程序博客网 时间:2024/06/05 00:42
1、必备知识:
(1) bmp、jpg、gif格式详细解析

(2)图像开发常用算法

2、开发环境

(1)win平台    VS2010    C++
3、应用  (源代码不贴了,如若需要,留言吧)
(1)图像标识
也就是说将指定的字符或者加密信息写入到图片中。这是最简单的使用方式,不考虑安全性。
1、打开图像获得图像句柄   FILE* hFile=fopen(T2A(filename),"r+");
       2、验证图像类型             if (hFile){
int a;
a = fgetc(hFile);
if (a != 0xff || fgetc(hFile) != 0xd8){
return ;
}
3、将指针移到目的位置    fseek(hFile,6,0);      //备注:位置的偏移量根据图片的不同类型得出
4、写入
static unsigned char JfifHead[4] = {'*','g','b','*'};
fwrite(JfifHead,4,1,hFile);
5、关闭句柄
缺点:写入信息显式的展现出来,容易更改。一般只用于协议内传递。
(2)数字水印  
(1)  根据数字隐写技术进行添加数字水印,相应的进行版权保护和防复制。常用的方法:
a、基于DCT域隐写 ,如:JSteg算法、F3-F5算法
离散余弦变换(Discrete Cosine Transform,DCT)是一种实数域变换,其变换核为实数余弦函数。对一幅图像进行离散余弦变换后,许多有关图像的重要可视信息都集      中在DCT变换的一小部分系数中。因此,离散余弦变换(DCT)是有损图像压缩JPEG的核心,同时也是所谓“变换域信息隐藏算法”的主要“变换域(DCT域)”之一。(概念不说了,问度娘吧!~
b、基于空域隐写,如:LSB算法等
(3)传递保密信息
可以将图片作为载体,将加密信息写入,在互联网中进行传递。写入的原理见 数字水印。加密可实现,MD5、RSA等。
这样同时也给了黑客的可乘之机,一张普通的图片完全可以携带足够的代码,使之在服务器或者肉鸡上运行,而且很难监测~
0 0
原创粉丝点击