日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C# > 正文

C#加密解密文件小工具實現代碼

2020-01-24 03:41:58
字體:
來源:轉載
供稿:網友
DebugLZQ在網上搜索相關文件加密的程序,發現給出的基本都是針對“字符創”、“文本”的加密與解密。對視頻文件、圖片等一般文件的加密解密程序少之又少,故寫下此文,實現一個對一般文件進行加密的小工具。

  程序的主要功能是:用戶通過文件選擇框選擇要加密的文件-》輸入密碼進行加密;選擇加密后的文件,輸入密碼進行解密。

  程序的主界面如下:

三個按鈕的Click事件處理程序如下:
復制代碼 代碼如下:

private void btnSelectFile_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
txtFileName.Text = openFileDialog1.FileName ;
}
}
private void btnEncryptFile_Click(object sender, EventArgs e)
{
string inFile=txtFileName.Text;
string outFile = inFile + ".dat";
string password=txtPassword.Text ;
DESFile.DESFileClass.EncryptFile(inFile, outFile, password);//加密文件
//刪除加密前的文件
File.Delete(inFile);
txtFileName.Text = string.Empty;
MessageBox.Show("加密成功");
}
private void btnDecryptFile_Click(object sender, EventArgs e)
{
string inFile = txtFileName.Text;
string outFile = inFile.Substring(0,inFile.Length - 4);
string password = txtPassword.Text;
DESFile.DESFileClass.DecryptFile (inFile, outFile, password);//解密文件
//刪除解密前的文件
File.Delete(inFile);
txtFileName.Text = string.Empty;
MessageBox.Show("解密成功");
}

加密解密的Help文件源碼如下:
復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace DESFile
{
/// <summary>
/// 異常處理類
/// </summary>
public class CryptoHelpException : ApplicationException
{
public CryptoHelpException(string msg) : base(msg) { }
}
/// <summary>
/// CryptHelp
/// </summary>
public class DESFileClass
{
private const ulong FC_TAG = 0xFC010203040506CF;
private const int BUFFER_SIZE = 128 * 1024;
/// <summary>
/// 檢驗兩個Byte數組是否相同
/// </summary>
/// <param name="b1">Byte數組</param>
/// <param name="b2">Byte數組</param>
/// <returns>true-相等</returns>
private static bool CheckByteArrays(byte[] b1, byte[] b2)
{
if (b1.Length == b2.Length)
{
for (int i = 0; i < b1.Length; ++i)
{
if (b1[i] != b2[i])
return false;
}
return true;
}
return false;
}
/// <summary>
/// 創建DebugLZQ ,http://www.cnblogs.com/DebugLZQ
/// </summary>
/// <param name="password">密碼</param>
/// <param name="salt"></param>
/// <returns>加密對象</returns>
private static SymmetricAlgorithm CreateRijndael(string password, byte[] salt)
{
PasswordDeriveBytes pdb = new PasswordDeriveBytes(password, salt, "SHA256", 1000);
SymmetricAlgorithm sma = Rijndael.Create();
sma.KeySize = 256;
sma.Key = pdb.GetBytes(32);
sma.Padding = PaddingMode.PKCS7;
return sma;
}
/// <summary>
/// 加密文件隨機數生成
/// </summary>
private static RandomNumberGenerator rand = new RNGCryptoServiceProvider();
/// <summary>
/// 生成指定長度的隨機Byte數組
/// </summary>
/// <param name="count">Byte數組長度</param>
/// <returns>隨機Byte數組</returns>
private static byte[] GenerateRandomBytes(int count)
{
byte[] bytes = new byte[count];
rand.GetBytes(bytes);
return bytes;
}
/// <summary>
/// 加密文件
/// </summary>
/// <param name="inFile">待加密文件</param>
/// <param name="outFile">加密后輸入文件</param>
/// <param name="password">加密密碼</param>
public static void EncryptFile(string inFile, string outFile, string password)
{
using (FileStream fin = File.OpenRead(inFile),
fout = File.OpenWrite(outFile))
{
long lSize = fin.Length; // 輸入文件長度
int size = (int)lSize;
byte[] bytes = new byte[BUFFER_SIZE]; // 緩存
int read = -1; // 輸入文件讀取數量
int value = 0;
// 獲取IV和salt
byte[] IV = GenerateRandomBytes(16);
byte[] salt = GenerateRandomBytes(16);
// 創建加密對象
SymmetricAlgorithm sma = DESFileClass.CreateRijndael(password, salt);
sma.IV = IV;
// 在輸出文件開始部分寫入IV和salt
fout.Write(IV, 0, IV.Length);
fout.Write(salt, 0, salt.Length);
// 創建散列加密
HashAlgorithm hasher = SHA256.Create();
using (CryptoStream cout = new CryptoStream(fout, sma.CreateEncryptor(), CryptoStreamMode.Write),
chash = new CryptoStream(Stream.Null, hasher, CryptoStreamMode.Write))
{
BinaryWriter bw = new BinaryWriter(cout);
bw.Write(lSize);
bw.Write(FC_TAG);
// 讀寫字節塊到加密流緩沖區
while ((read = fin.Read(bytes, 0, bytes.Length)) != 0)
{
cout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
}
// 關閉加密流
chash.Flush();
chash.Close();
// 讀取散列
byte[] hash = hasher.Hash;
// 輸入文件寫入散列
cout.Write(hash, 0, hash.Length);
// 關閉文件流
cout.Flush();
cout.Close();
}
}
}
/// <summary>
/// 解密文件
/// </summary>
/// <param name="inFile">待解密文件</param>
/// <param name="outFile">解密后輸出文件</param>
/// <param name="password">解密密碼</param>
public static void DecryptFile(string inFile, string outFile, string password)
{
// 創建打開文件流
using (FileStream fin = File.OpenRead(inFile),
fout = File.OpenWrite(outFile))
{
int size = (int)fin.Length;
byte[] bytes = new byte[BUFFER_SIZE];
int read = -1;
int value = 0;
int outValue = 0;
byte[] IV = new byte[16];
fin.Read(IV, 0, 16);
byte[] salt = new byte[16];
fin.Read(salt, 0, 16);
SymmetricAlgorithm sma = DESFileClass.CreateRijndael(password, salt);
sma.IV = IV;
value = 32;
long lSize = -1;
// 創建散列對象, 校驗文件
HashAlgorithm hasher = SHA256.Create();
using (CryptoStream cin = new CryptoStream(fin, sma.CreateDecryptor(), CryptoStreamMode.Read),
chash = new CryptoStream(Stream.Null, hasher, CryptoStreamMode.Write))
{
// 讀取文件長度
BinaryReader br = new BinaryReader(cin);
lSize = br.ReadInt64();
ulong tag = br.ReadUInt64();
if (FC_TAG != tag)
throw new CryptoHelpException("文件被破壞");
long numReads = lSize / BUFFER_SIZE;
long slack = (long)lSize % BUFFER_SIZE;
for (int i = 0; i < numReads; ++i)
{
read = cin.Read(bytes, 0, bytes.Length);
fout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
outValue += read;
}
if (slack > 0)
{
read = cin.Read(bytes, 0, (int)slack);
fout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
outValue += read;
}
chash.Flush();
chash.Close();
fout.Flush();
fout.Close();
byte[] curHash = hasher.Hash;
// 獲取比較和舊的散列對象
byte[] oldHash = new byte[hasher.HashSize / 8];
read = cin.Read(oldHash, 0, oldHash.Length);
if ((oldHash.Length != read) || (!CheckByteArrays(oldHash, curHash)))
throw new CryptoHelpException("文件被破壞");
}
if (outValue != lSize)
throw new CryptoHelpException("文件大小不匹配");
}
}
}
}

加密/解密結果:
以加密D盤下的1.avi為例,加密后的文件為1.avi.dat,即使重命名回1.avi文件依然無法打開(文件被加密)。

輸入密碼進行解密后,文件恢復解密,可以順利打開~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产欧美高清在线| 久久99精品国产| 欧美一级免费在线观看| 欧美激情一区二区在线| 日韩欧美不卡| 国产视频1区| 日韩三级视频中文字幕| 欧美乱大交xxxxx免费| 一区二区精品| 91精品国产日韩91久久久久久| 欧美不卡123| 日韩欧美在线综合网| 亚洲专区一二三| 91精品无人成人www| 一区精品在线播放| 亚洲欧美99| 在线视频观看日韩| www.三级.com| 日韩在线观看精品| 天堂精品高清1区2区3区| 欧美日韩国产在线| 日本精品在线播放| 蜜臀国产一区| 在线观看免费国产成人软件| 日韩不卡在线播放| 亚洲欧美久久234| 欧美日韩性视频在线| 亚洲欧美久久久| 黄色国产网站在线观看| 不卡在线视频| 日韩精品丝袜在线| 国产成人精品999在线观看| 黄色一区二区在线| 亚洲国产福利| 免费视频二区| av丝袜在线| 五月综合激情日本mⅴ| 国产亚洲福利| 中文字幕 亚洲视频| 久草中文在线观看| 99中文字幕一区| 成人a在线观看| 欧美婷婷精品激情| a天堂在线资源| 伊人国产视频| 欧美一级免费在线观看| 中文精品电影| 日韩不卡一区二区| 日韩国产91| wwww亚洲| 欧美国产中文| 一区二区三区在线不卡| 7799精品视频天天看| 欧美黄页在线免费观看| 欧美亚洲国产激情| www.久久久精品| 国产不卡视频在线| 久久精品国产2020观看福利| 亚洲成av人片一区二区密柚| 色欧美日韩亚洲| 91精品国产91| 伊人永久在线| 91色在线看| 粉嫩喷白浆久久| 日韩高清不卡| 亚洲第一视频网站| 久久99久久99精品中文字幕| 亚洲视频电影在线| 日韩亚洲欧美中文在线| 色综合天天综合网天天狠天天| 一区精品在线播放| 久久久精品国产99久久精品芒果| 亚洲一区日韩在线| 亚洲欧美中文字幕在线观看| 精品不卡一区二区| 亚洲第一中文字幕| 一区二区在线看| 91精品在线国产| aa国产成人| 国产三级第一页| 视频一区日韩| 亚洲欧美中文字幕| 91最新在线| www.中文字幕在线观看| 亚洲一区不卡在线| 一区二区三区精品在线观看| 一区二区视频在线观看免费的| 在线视频国内一区二区| 亚洲最新永久观看在线| 欧美日韩在线精品成人综合网| 国产中文在线| 国产日韩电影| 不卡视频一区二区| 久久久精品网| 国产精品福利视频一区二区三区| 日韩欧美色综合| 亚洲视频色图| 中文官网资源新版中文第二页在线观看| 在线日韩欧美| 欧美特黄一区| 91av久久久| 欧美日韩高清在线播放| 日韩精品在线免费播放| 精品免费久久久| 国产日韩精品视频| 97久久精品| 亚洲小说春色综合另类电影| 国产99亚洲| 亚洲影视资源网| 中文精品视频| 亚洲а∨精品天堂在线| 日韩一级中文字幕| 亚洲第一视频| 国产黄在线播放| 欧美日韩国产中文精品字幕自在自线| 亚州福利视频| 一区二区三区久久| 91精品国产亚洲| 中文字幕亚洲在| 久久久精品国产99久久精品芒果| 日韩欧美国产免费播放| 中文字幕在线视频精品| 国产一级粉嫩xxxx| 国产欧美日韩成人| 久久婷婷国产| 在线视频观看日韩| 日韩av一区在线| 久久夜色精品国产欧美乱极品| 免费视频久久| wwwav91com| 亚洲人成欧美中文字幕| 日韩中文字幕第一页| 久久综合久久综合九色| 精品成a人在线观看| 国产一二三精品| 一区二区不卡视频| 日韩精品视频网站| 亚洲日本精品视频| 欧美日韩国产综合久久 | 国产裸体歌舞团一区二区| 日韩免费视频一区二区视频在线观看| 亚洲免费看av| 日韩欧美三级视频| 亚洲高清视频在线| 中文字幕亚洲一区在线观看| 欧美三级网址| 国产日韩av高清| 久久久99免费| 中文字幕人成乱码在线观看| 国产一卡二卡3卡4卡四卡在线 | 午夜伦欧美伦电影理论片| 中文字幕日韩在线视频| 日韩精品视频在线观看视频| 红桃视频国产一区| 一区免费在线| 国产成人中文字幕| 国产区日韩欧美| 日韩免费久久| 最近中文av字幕在线中文| 日韩av在线中文字幕| 国产高潮久久久| av免费观看网站| 精品视频三区| 亚洲经典中文字幕| 日韩欧美中文免费| 精品在线一区二区| 日韩国产一区久久| 日韩欧美中文在线| 99综合视频| 日本黄色一区二区| 国产欧美日韩91| 日韩欧美中文在线| 日韩在线二区| 欧美日韩在线视频免费观看| 日韩欧美在线综合网| 黄色在线资源| 亚洲大胆人体av| 国产无套粉嫩白浆在线2022年 | 日韩亚洲一区在线| 国产一级粉嫩xxxx| 中文在线第一页| 91精品久久久久久久久| 精品日本视频| 欧美日韩在线综合| 国产手机视频一区二区| 国产小视频在线| 国产一区日韩| 欧美 日韩 国产 在线| 午夜精品一区二区三区免费视频| 国产高清一级片| 国产高清在线视频| 国产卡1卡2卡三卡在线| 久久久99久久精品欧美| 日韩视频一区在线观看| 午夜一区二区视频| 日韩欧美一二三| 一区二区三区在线不卡| 欧美日韩国产片| 日韩精品福利一区二区三区| 亚洲免费福利视频| 91精品国产经典在线观看| 国产高清在线一区| 欧美午夜精品在线| 午夜一区二区三区| 午夜伊人狠狠久久| 999视频精品| 亚洲图片小说综合| 91精品视频国产| 亚洲成人7777| 欧美日韩高清在线播放| 欧美三级精品| 日韩在线一区二区| 91精品国产调教在线观看 | av免费观看网站| 婷婷精品进入| 日韩精品不卡一区二区| 日韩精品福利视频| 色综合影院在线| 欧美日韩中文字幕一区| 国产成人精品免费在线| 91久久精品网| 欧美日韩视频网站| 久久综合久久综合九色| 麻豆精品视频入口| 欧美日韩国产综合视频在线观看| 欧美亚洲国产日韩2020| 日韩欧美国产成人精品免费| 日韩欧美在线综合网| 中文字幕亚洲视频| 日韩精品福利一区二区三区| 日韩中文字幕精品视频| 免费看ww视频网站入口| 蜜桃视频中文字幕| 日韩视频在线免费看| 久本草在线中文字幕亚洲欧美| 亚洲精品中文字幕乱码三区| 精品三级久久| 国产欧美一级| 国产卡1卡2卡三卡在线| 国产乱码在线观看| 亚洲va中文字幕| 色综合婷婷久久| 国产对白在线| 一区二区视频在线| 国产一区久久久| 中文字幕亚洲字幕| 久久久综合av| 国产一级久久久| 在线国产1区| 日韩欧美中文| www.精品av.com| 欧美日韩亚洲第一| 日韩精品视频免费播放| 久久riav| 精品999视频| 91欧美日韩| 色偷偷一区二区三区| 中文字幕在线视频网| 久久久久久99精品| 中文字幕亚洲免费| 精品国产乱码一区二区| 欧美一级久久久久久久久大| 欧美日韩在线精品成人综合网| 日韩欧美在线综合网| 日韩在线视频精品| 日韩精品丝袜在线| 欧美三级在线看| www.91香蕉视频| 亚洲成年网站在线观看| 快she精品国产999| 欧美日韩国产在线看| 亚洲小说春色综合另类网蜜桃| 成人xxxx| 亚洲一区中文| 日本а中文在线天堂| 欧美国产一区视频在线观看| 欧美国产一级片| 在线观看一区日韩| www.av中文字幕| 亚洲欧洲日韩精品在线| 亚洲一卡二卡在线观看| 色99中文字幕| 精品国产91| 欧美熟妇乱码在线一区| 91久久大香伊蕉在人线| 日韩不卡中文字幕| 欧美二三四区| 午夜国产视频| 国产欧美日韩精品在线| 日韩午夜黄色| 免费在线视频一区二区| 欧美日韩中文国产| 一区二区精品| 欧美日韩国产综合视频在线观看中文| 精品日韩av一区二区| 国产日韩成人精品| 91精品国产调教在线观看| 亚洲欧美999| 中文 欧美 日韩| 日韩欧美综合| 亚洲免费精品| 日韩精品在线免费看| 欧美日韩不卡在线视频| 午夜成人鲁丝片午夜精品| 91精品国产自产观看在线| av免费网站在线观看| 91久久精品国产91久久| 中文字幕在线看精品乱码| 国产香蕉免费精品视频| 国产伦精品免费视频| 日韩精品在线观| 亚洲国产91精品在线观看| 亚洲第一视频| 国产免费电影网站入口| 在线一区二区不卡| 最近高清中文在线字幕在线观看1| 日韩免费高清一区二区| 日韩欧美中文免费| 亚洲乱码视频| 91亚洲国产| 久久久精品福利| 欧美日韩国产在线观看| 日韩一级免费视频| 亚洲国产91精品在线观看| www.久久久精品| www.中文字幕在线观看| lutube成人福利在线观看| 久久永久免费视频| xxxxx性| 欧美国产综合在线V| 日韩视频精品| 国产天堂素人系列在线视频| 欧美日韩一二三| 欧美日韩国产一级片| 日韩免费视频| 在线观看一区| 精品久久久视频| 最近中文字幕在线中文高清版| 日韩福利视频导航| 国产视频1区2区| 日韩欧美三级| 中文字幕一区不卡| 蜜桃视频一日韩欧美专区| 久久久久久99精品| 玖玖在线免费视频| www.精品av.com| 国产成人精品免费久久久久| 粉嫩粉嫩芽的虎白女18在线视频| 国产最新在线| 国产永久在线观看| 91欧美日韩麻豆精品| 欧美日韩综合色| 亚洲一二三不卡| 久久99精品国产| 欧美自拍一区| 国产日韩精品久久久| 欧美日韩中文字幕综合视频| 91精品国产91| 中文在线不卡| 精品日韩视频在线观看| 国产中文伊人| 国内精品露脸在线视频播放| 91精品国产综合久久香蕉最新版| 久久久99免费| 欧美日韩乱国产| 精品欧美久久久| 欧美日韩一二三| 国产福利在线导航| 日韩久久精品视频| 日韩一级在线视频| 二区三区不卡不卡视频| 欧美久久在线| 日韩av中文字幕一区| www.三级.com| 国产裸舞福利在线视频合集| 色综合天天综合网天天狠天天| 精品亚洲成a人片在线观看| 99pao成人国产永久免费视频| 最新中文字幕在线播放| 午夜一区二区三区| 高清日韩中文字幕| 伊人网站在线| 亚洲欧美999| 一二三区精品视频| wwwav91com| 中文字幕乱码在线| 99精品在线播放| 在线看欧美日韩| 国产一区在线观看视频| 国产高清精品在线| 91精品久久久久久久久| 国产乱国产乱300精品| 99热最新网址| 亚洲成av人片一区二区密柚| 亚洲人线精品午夜| 精品熟女一区二区三区| 亚洲素人一区二区| aaa大片在线观看| 欧美日韩亚洲国内综合网| 快she精品国产999|