基本信息
源码名称:C# 加密、解密文本文件 示例源码
源码大小:0.05M
文件格式:.zip
开发语言:C#
更新时间:2018-02-17
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
using System.IO;
namespace Ex16_02
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//选择加密解密文件路径
private void button3_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "文本文件|*.txt|*.*|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}
///*************************/
//解密
private void button4_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请选择要解密的文件路径");
}
else
{
string strPath = textBox1.Text;//加密文件的路径
int intLent = strPath.LastIndexOf("\\") 1;
int intLong = strPath.Length;
string strName = strPath.Substring(intLent, intLong - intLent);//要加密的文件名称
int intTxt = strName.LastIndexOf(".");
int intTextLeng = strName.Length;
strName = strName.Substring(0, intTxt);
if (strName.LastIndexOf("Out") != -1)
{
strName = strName.Substring(0, strName.LastIndexOf("Out"));
}
else
{
strName = strName "In";
}
//加密后的文件名及路径
string strInName = strPath.Substring(0, strPath.LastIndexOf("\\") 1) strName ".txt";
byte[] key = { 24, 55, 102, 24, 98, 26, 67, 29, 84, 19, 37, 118, 104, 85, 121, 27, 93, 86, 24, 55, 102, 24, 98, 26, 67, 29, 9, 2, 49, 69, 73, 92 };
byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24, 55, 102, 24, 98, 26, 67, 29, 99 };
RijndaelManaged myRijndael = new RijndaelManaged();
FileStream fsOut = File.Open(strPath, FileMode.Open, FileAccess.Read);
CryptoStream csDecrypt = new CryptoStream(fsOut, myRijndael.CreateDecryptor(key, IV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(csDecrypt);//把文件读出来
StreamWriter sw = new StreamWriter(strInName);//解密后文件写入一个新的文件
sw.Write(sr.ReadToEnd());
sw.Flush();
sw.Close();
sr.Close();
fsOut.Close();
if (MessageBox.Show(strInName, "提示:解密成功!解密后的文件名及路径为:" "是否册除源文件", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
File.Delete(strPath);
textBox1.Text = "";
}
else
{
textBox1.Text = "";
}
}
}
//加密
private void button5_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{ MessageBox.Show("请选择要加密的文件"); }
else
{
try{
string strPath = textBox1.Text;//加密文件的路径
int intLent=strPath.LastIndexOf("\\") 1;
int intLong = strPath.Length;
string strName = strPath.Substring(intLent,intLong-intLent);//要加密的文件名称
int intTxt = strName.LastIndexOf(".");
int intTextLeng = strName.Length;
string strTxt = strName.Substring(intTxt,intTextLeng-intTxt);//取出文件的扩展名
strName = strName.Substring(0,intTxt);
//加密后的文件名及路径
string strOutName = strPath.Substring(0, strPath.LastIndexOf("\\") 1) strName "Out" strTxt;
byte[] key = { 24, 55, 102, 24, 98, 26, 67, 29, 84, 19, 37, 118, 104, 85, 121, 27, 93, 86, 24, 55, 102, 24, 98, 26, 67, 29, 9, 2, 49, 69, 73, 92 };
byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24, 55, 102, 24, 98, 26, 67, 29, 99 };
RijndaelManaged myRijndael = new RijndaelManaged();
FileStream fsOut = File.Open(strOutName, FileMode.Create, FileAccess.Write);
FileStream fsIn = File.Open(strPath, FileMode.Open, FileAccess.Read);
//写入加密文本文件
CryptoStream csDecrypt = new CryptoStream(fsOut, myRijndael.CreateEncryptor(key, IV), CryptoStreamMode.Write);
//读加密文本
BinaryReader br = new BinaryReader(fsIn);
csDecrypt.Write(br.ReadBytes((int)fsIn.Length), 0, (int)fsIn.Length);
csDecrypt.FlushFinalBlock();
csDecrypt.Close();
fsIn.Close();
fsOut.Close();
if (MessageBox.Show(strOutName, "提示:加密成功!加密后的文件名及路径为:\n" "是否册除源文件", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
File.Delete(strPath);
textBox1.Text = "";
}else
{ textBox1.Text = ""; }
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}
}
/***************************/
}
}