当前位置:  编程技术>.net/c#/asp.net

c# 图片加密解密的实例代码

    来源: 互联网  发布时间:2014-10-22

    本文导语:  代码如下:using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;using System.IO; namespace Net.Template.Common{/// /// 对图片的加密和解密/// public class DEncrypt4ImageHelper{public DEncrypt4ImageHelper() { } #region 加密方法 图片加...

代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace Net.Template.Common
{
///
/// 对图片的加密和解密
///
public class DEncrypt4ImageHelper
{
public DEncrypt4ImageHelper() { }

#region 加密方法 图片加密
///
/// 图片加密
///
/// 源文件
/// 保存为文件名称
/// 密钥
public static void EncryptFile(string filePath, string savePath, string keyStr)
{
//通过des加密
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//通过流打开文件
FileStream fs = File.OpenRead(filePath);
//获取文件二进制字符
byte[] inputByteArray = new byte[fs.Length];
//读流文件
fs.Read(inputByteArray, 0, (int)fs.Length);
//关闭流
fs.Close();
//获得加密字符串二进制字符
byte[] keyByteArray = Encoding.Default.GetBytes(keyStr);

//计算指定字节组指定区域哈希值
SHA1 ha = new SHA1Managed();
byte[] hb = ha.ComputeHash(keyByteArray);
//加密密钥数组
byte[] sKey = new byte[8];
//加密变量
byte[] sIV = new byte[8];
for (int i = 0; i < 8; i++)
sKey[i] = hb[i];
for (int i = 8; i < 16; i++)
sIV[i - 8] = hb[i];
//获取加密密钥

des.Key = sKey;
//设置加密初始化向量
des.IV = sIV;
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
fs = File.OpenWrite(savePath);

foreach (byte b in ms.ToArray())
{
fs.WriteByte(b);

}

fs.Close();
cs.Close();
ms.Close();

}
#endregion

#region 解密方法 图片解密
///
/// 图片解密
///
/// 源文件
/// 保存文件
/// 密钥
public static void DecryptFile(string filePath, string savePath, string keyStr)
{
//通过des解密
DESCryptoServiceProvider des = new DESCryptoServiceProvider();

//通过流读取文件
FileStream fs = File.OpenRead(filePath);
//获取文件二进制字符
byte[] inputByteArray = new byte[fs.Length];
//读取流文件
fs.Read(inputByteArray, 0, (int)fs.Length);
//关闭流
fs.Close();
//密钥数组
byte[] keyByteArray = Encoding.Default.GetBytes(keyStr);
//定义哈希变量
SHA1 ha = new SHA1Managed();
//计算指定字节组指定区域哈希值
byte[] hb = ha.ComputeHash(keyByteArray);
//加密密钥数组
byte[] sKey = new byte[8];
//加密变量
byte[] sIV = new byte[8];
for (int i = 0; i < 8; i++)
sKey[i] = hb[i];
for (int i = 8; i < 16; i++)
sIV[i - 8] = hb[i];
//获取加密密钥
des.Key = sKey;
//加密变量
des.IV = sIV;
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
fs = File.OpenWrite(savePath);
foreach (byte b in ms.ToArray())
{
fs.WriteByte(b);
}
fs.Close();
cs.Close();
ms.Close();

}
#endregion

}
}


    
 
 

您可能感兴趣的文章:

  • c#正则过滤图片标签 asp.net正则过滤的例子
  • C# 图片与二进制转换的简单实例
  • C#实现动态显示及动态移除图片方法
  • C#给picturebox控件加图片选中状态的2个方法
  • 基于C# winform实现图片上传功能的方法
  • C#实现图片放大功能的按照像素放大图像方法
  • C#实现把彩色图片灰度化代码分享
  • c#读取图像保存到数据库(数据库保存图片)实例
  • C#判断上传文件是否是图片以防止木马上传的方法
  • C#实现将网页保存成图片的网页拍照功能
  • c#实现图片与字节流相互转换的代码
  • C# 将字节流转换为图片的实例方法
  • c#图片处理之图片裁剪成不规则图形
  • c# Base64编码和图片的互相转换代码
  • C#保存图片到数据库并读取显示图片的方法
  • c#读取图像保存到数据库中(数据库保存图片)
  • C# 将透明图片的非透明区域转换成Region的实例代码
  • C#操作图片读取和存储SQLserver实现代码
  • C# 判断两张图片是否一致的快速方法
  • C#中按指定质量保存图片的实例代码
  • php使用base64加密解密图片示例分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • JS点击图片改变图片图径并用正则表达式取图片名的代码
  • Python3通过request.urlopen实现Web网页图片下载
  • Android 图片浏览器 雪梦图片浏览器
  • android中知道图片name时获取图片的简单方法
  • css为图片设置背景图片
  • android图像绘制(六)获取本地图片或拍照图片等图片资源
  • 有没有可以从已知图片里过滤出,不规则图片的滤镜??
  • 怎么让客户端从服务器下载图片后,看不到图片的最后修改时间
  • 如何将一个彩色bmp图片转换成黑白图片,急用
  • 查询图片,图片文件存放在数据库中好,还是存放路径好,是否有更好的解决办法
  • 图片和jlabel的大小不相同,怎样让图片充满整个jlabel?
  • PHP正则匹配图片并给图片加链接详解
  • phpphp图片采集后按原路径保存图片示例
  • codeigniter上传图片不能正确识别图片类型问题解决方法
  • jquery图片淡入淡出与图片切换效果的例子
  • linux能不能像xp那样子以幻灯片方式查看图片。我在一个文件夹里面有几张图片,想进行挑选。用幻灯片查看的方式比较方便
  • 加图片问题,我想在警告时加一个图片,程序如下,但我的图片出不来,各位高手帮帮忙
  • 我想调用图片的单击事件,再用函数动态加载图片,这样为什么不能实现???
  • 请问如何在JAVAMAIL中显示图片,如果附件中不是图片,如何给它加上链接让用户下载呢?
  • jquery图片轮播插件仿支付宝2013版全屏图片幻灯片


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3