C#实现对文件进行加密解密的方法
本文实例讲述了C#实现对文件进行加密解密的方法。分享给大家供大家参考。具体如下:
usingSystem;
usingSystem.IO;
usingSystem.Security.Cryptography;
publicclassExample19_9
{
publicstaticvoidMain()
{
//Createanewfiletoworkwith
FileStreamfsOut=File.Create(@"c:\temp\encrypted.txt");
//Createanewcryptoprovider
TripleDESCryptoServiceProvidertdes=
newTripleDESCryptoServiceProvider();
//Createacryptostreamtoencrypttothefilestream
CryptoStreamcs=newCryptoStream(fsOut,tdes.CreateEncryptor(),
CryptoStreamMode.Write);
//CreateaStreamWritertoformattheoutput
StreamWritersw=newStreamWriter(cs);
//Andwritesomedata
sw.WriteLine("'Twasbrillig,andtheslithytoves");
sw.WriteLine("Didgyreandgimbleinthewabe.");
sw.Flush();
sw.Close();
//savethekeyandIVforfutureuse
FileStreamfsKeyOut=File.Create(@"c:\\temp\encrypted.key");
//useaBinaryWritertowriteformatteddatatothefile
BinaryWriterbw=newBinaryWriter(fsKeyOut);
//writedatatothefile
bw.Write(tdes.Key);
bw.Write(tdes.IV);
//flushandclose
bw.Flush();
bw.Close();
}
}
解密代码如下:
usingSystem;
usingSystem.IO;
usingSystem.Security.Cryptography;
publicclassExample19_10
{
publicstaticvoidMain()
{
//Createanewcryptoprovider
TripleDESCryptoServiceProvidertdes=
newTripleDESCryptoServiceProvider();
//openthefilecontainingthekeyandIV
FileStreamfsKeyIn=File.OpenRead(@"c:\temp\encrypted.key");
//useaBinaryReadertoreadformatteddatafromthefile
BinaryReaderbr=newBinaryReader(fsKeyIn);
//readdatafromthefileandcloseit
tdes.Key=br.ReadBytes(24);
tdes.IV=br.ReadBytes(8);
//Opentheencryptedfile
FileStreamfsIn=File.OpenRead(@"c:\\temp\\encrypted.txt");
//Createacryptostreamtodecryptfromthefilestream
CryptoStreamcs=newCryptoStream(fsIn,tdes.CreateDecryptor(),
CryptoStreamMode.Read);
//CreateaStreamReadertoformattheinput
StreamReadersr=newStreamReader(cs);
//Anddecryptthedata
Console.WriteLine(sr.ReadToEnd());
sr.Close();
}
}
希望本文所述对大家的C#程序设计有所帮助。