实现思路比较简单:
1.对图片对象进行byteArray转化后 加一些密码字节后"加密"储存在磁盘
2.图片显示时 去掉加的字串 用原本的图片信息进行图片对象的构建和显示
WinForm下示例代码:
------------------
WinForm下通过PictureBox控件来显示:
只所以用PictureBox的Image对象
是因为有可能图像对象不是平时所见的已存在于磁盘的图片文件
还有可能是从视频采集卡等直接抓取的图像
//图像"加密"保存
private void button1_Click(object sender, EventArgs e)
{
//把pictureBox1中的图像增加一些密码字节的文字信息后 "加密"储存在磁盘
System.IO.MemoryStream ms = new System.IO.MemoryStream();
byte[] byteArrayPwd = System.Text.Encoding.Default.GetBytes("http://freeliver54.cnblogs.com/");
ms.Write(byteArrayPwd, 0, byteArrayPwd.Length);
//
Image img = this.pictureBox1.Image;
//将图片对象存入MemoryStream
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//保存"图片"文件 此时的图片用平常的图片浏览器是不能正常打开查看的
BinaryWriter bw = new BinaryWriter(File.Open(@"F:\\images\20081014.jpg", FileMode.OpenOrCreate));
bw.Write(ms.ToArray());
bw.Close();
ms.Close();
}
//"解密"图像显示 注意该解密是在内存中进行 并没有通过中间的tmp文件来搭桥
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream(@"F:\\images\20081014.jpg", FileMode.Open, FileAccess.Read);
byte[] byteArrayFile = new byte[fs.Length];
fs.Read(byteArrayFile, 0, (int)fs.Length);
fs.Close();
byte[] byteArrayPwd = System.Text.Encoding.Default.GetBytes("http://freeliver54.cnblogs.com/");
System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArrayFile, byteArrayPwd.Length,byteArrayFile.Length-
byteArrayPwd.Length);
//需要做相关异常处理 因为截取位置若不正确 将不能正常的构建出图像对象 会抛参数无效等异常
try
{
this.pictureBox2.Image = System.Drawing.Image.FromStream(ms);
}
finally
{
ms.Close();
}
}
----
以上是在WinForm下的简单尝试
可能"加密"后的图片 要在Web页面的Image等控件来显示
此时就不能用直接的src指向图片文件 因为此时的该图片文件是不能正常显示的
可通过另外的页面对图片解密后再返回给控件进行显示<img src="Picture.aspx">
分享到:
相关推荐
c# 通过修改图片对象的文件的字节-变相加密解密图片在磁盘的存储
c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密
C# 文件加密 实例源码(加密解密)
实现C#加密各种文件 和解密加密后的文件 完整工程 直接可以编译运行
C#做的RSA加密解密, 带winform界面, 测试通过, 代码完整。
用c#做的加密解密的小软件,可以实现对文本的加密解密。
c# 使用DidiSoft.Pgp来实现对文件的GPG 加密与解密 。GPG非对称加密需要公钥和私钥 :你的公钥的作用 :别人用来给你发加密的信息&别人验证你的签名,即加密&验证(别人来做) 你的私钥的作用 :你用来创建签名&...
通常C#使用xml格式的密钥文件,不能使用Linux下的公钥和私钥pem文件。...本源码直接使用linux下的PEM文件来做RSA加密和解密,可避免xml格式文件的移植性问题。完整的源码,Vs2008工程,以编译和测试通过。
C#文件加密解密
带加密字符的 加密 解密方法 static string encryptKey = "加密字符"; 自定义加密字符(加密解密必须一致才能解密) /// /// 加密字符串 /// /// name="str">要加密的字符串 /// 加密后的...
C# 对XML文件进加密与解密 C# 对XML文件进加密与解密 C# 对XML文件进加密与解密 C# 对XML文件进加密与解密 C# 对XML文件进加密与解密
本代码实现将JPG等图片文件转换为字节流并存储在TXT中,方便通信传输时将图片文件存储在数组中
开发环境VS2013;编程语言C#;用des对称加解密方法对任意文本文件进行加解密操作。可通过选择读入文本文件的方式,对文件进行操作。程序已编译运行通过,可放心使用。
自己用c#写的加密解密软件,采用自带组件System.Security.Cryptography,有详细注释,可直接运行看结果,写给不懂加密解密知识的人使用的,不用有加密解密等编程基础,只需添加窗体进自己的程序,然后按照代码注释在...
这个是对压缩文件的加密和解密操作。支持zip,jar,rar三种格式的压缩加密和解密,很方便使用,欢迎大家下载,交流
c#加密解密加密解密加密解密加密解密加密解密c#加密解密加密解密加密解密加密解密加密解密
C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。
AES128 加密 解密 C#实现 可以实现文件等的加密解密。
c#中对xml文件加密和解密完整代码,之前到网上下载的代码都是残缺不齐,这部是我个人做的,保证完整 c#中对xml文件加密和解密完整代码,之前到网上下载的代码都是残缺不齐,这部是我个人做的,保证完整
抽空用C#写了个大文件AES加密解密程序,用VS2019写的,低版本查看可能会报错