如何使用 Visual C#加密和解密文件
展开全部
软糖来回答吧。
先上代码
/// <summary>
/// 加密数据(从内存到文件)
/// </summary>
public static void Encrypt()
{
//创建一个文件对象,文件的模式是创建新文件,文件的访问权限是可写!
FileStream fs = new FileStream(@"J:\works\Demo.txt", FileMode.Create, FileAccess.Write);
Console.WriteLine("请输入你想要进行加密的字符串:");
string Input = Console.ReadLine();
//将字符串转换成字节
byte[] YourInputStorage = System.Text.Encoding.UTF8.GetBytes(Input);
//创建一个DES算法的加密类
DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();
//从DES算法的加密类对象的CreateEncryptor方法,创建一个加密转换接口对象
ICryptoTransform MyTransform = MyServiceProvider.CreateEncryptor
(new byte[]{100,110,120,130,100,110,120,130},
new byte[]{100,110,120,130,100,110,120,130});
//CryptoStream对象的作用是将数据流连接到加密转换的流
CryptoStream MyCryptoStream = new CryptoStream(fs, MyTransform, CryptoStreamMode.Write);
//将字节数组中的数据写入到加密流中
MyCryptoStream.Write(YourInputStorage,0,YourInputStorage.Length);
//关闭加密流对象
MyCryptoStream.Close();
}
/// <summary>
/// 解密数据(从文件到内存)
/// </summary>
public static void Decrypt()
{
FileStream fs = new FileStream("Demo.txt", FileMode.Open, FileAccess.Read);
DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();
//从DES算法的加密类对象的CreateEncryptor方法,创建一个解密转换接口对象
//[对称算法的机密密钥]必须是加密时候的[对称算法的机密密钥]
//[对称算法的初始化向量]必须是加密时候的[对称算法的初始化向量]
//如果不一样,则会抛出一个异常。
ICryptoTransform MyTransform = MyServiceProvider.CreateDecryptor
(new byte[]{100,110,120,130,100,110,120,130},
new byte[]{100,110,120,130,100,110,120,130});
CryptoStream MyCryptoStream = new CryptoStream(fs, MyTransform, CryptoStreamMode.Read);
byte[] YourInputStorage = new byte[1000];
int len = MyCryptoStream.Read(YourInputStorage, 0, YourInputStorage.Length);
Console.WriteLine("你刚才输入的字符串是:");
Console.WriteLine(System.Text.Encoding.UTF8.GetString(YourInputStorage,0,len));
}
主要就是System.Security.Cryptography命名空间和System.IO命名空间。
如满意,请采纳,谢谢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询