国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c# 圖片加密解密的實例代碼

2020-01-24 03:10:37
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

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

namespace Net.Template.Common
{
/// <summary>
/// 對圖片的加密和解密
/// </summary>
public class DEncrypt4ImageHelper
{
public DEncrypt4ImageHelper() { }

#region 加密方法 圖片加密
/// <summary>
/// 圖片加密
/// </summary>
/// <param name="filePath">源文件</param>
/// <param name="savePath">保存為文件名稱</param>
/// <param name="keyStr">密鑰</param>
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 解密方法 圖片解密
/// <summary>
/// 圖片解密
/// </summary>
/// <param name="filePath">源文件</param>
/// <param name="savePath">保存文件</param>
/// <param name="keyStr">密鑰</param>
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

}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汽车| 阿坝县| 黔东| 滁州市| 故城县| 昂仁县| 金湖县| 高阳县| 阿拉善左旗| 视频| 白山市| 广饶县| 龙门县| 宜春市| 开鲁县| 赤水市| 博罗县| 介休市| 潜江市| 连平县| 肃宁县| 全南县| 上蔡县| 蒲城县| 铁岭县| 塔河县| 木兰县| 阳西县| 吉林省| 兴城市| 嵊泗县| 永昌县| 米泉市| 赤水市| 江西省| 精河县| 共和县| 博罗县| 长泰县| 郑州市| 民权县|