try
{
byte[] Key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 }; byte[] IV = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 }; RijndaelManaged RMCrypto = new RijndaelManaged(); FileStream file = new FileStream(@"f:\a.txt",FileMode.Open); CryptoStream crypto = new CryptoStream(file,RMCrypto.CreateEncryptor(Key, IV), CryptoStreamMode.Read); StreamReader SReader = new StreamReader(crypto); SReader.Close(); file.Close(); }
catch
{
Console.WriteLine("The Listener Failed.");
}
用CryptoStream和RijndaelManaged算法把txt加密成功了,打开乱码。 但是我想解密,把文件复原。都按照msdn的做了没效果,也没异常。搞不懂
解决方案 »
- 一般三层文件夹起名的BLL DAL UI都代表哪些单词?
- c#有没有比较强大的控件,可以通过数据保存字段信息,生成前台的页面
- [急]問題:編譯試出錯,Invalid expression term '>'
- winform combox 自动检索的问题?
- TcpListener+TcpClient的传送效率问题
- filezllia
- 请问一下yahoo发送的中文是quoted-printable编码,我怎么才能解码呀?
- 最小化 不能
- 一个关于index的问题
- 转换.tif图像为jpg或gif 问题。
- WinForm 做的程序,加了IrisSkin2.dll皮肤后,我的folderBrowserDialog就打不开了..这是怎么回事?
- 透漏.net连接oracle的一个恶心BUG
用法:
a. 调用TestEnDencrypt.Encrypt(@"f:\a.xml") 加密获得"f:\a.xml_"文件,我测试用的xml是Unicode编码的,所以代码中用Encoding.Unicode.GetString获取的,你要对照文件更改对应的编码格式,这个是一个关键点;
b. 调用TestEnDencrypt.Dencrypt(@"f:\a.xml_")文件就可以成功得到解密后的字符串内容了。
class TestEnDencrypt
{ static byte[] Key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 }; static byte[] IV = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 };
static void Encrypt(string fileName)
{ try
{
RijndaelManaged RMCrypto = new RijndaelManaged(); FileStream file = new FileStream(fileName, FileMode.Open);
byte[] data = new byte[file.Length]; file.Read(data, 0, (int)file.Length); file.Close(); MemoryStream ms = new MemoryStream(); CryptoStream crypto = new CryptoStream(ms, RMCrypto.CreateEncryptor(Key, IV), CryptoStreamMode.Write); using (StreamWriter sw = new StreamWriter(crypto))
{
string text = Encoding.Unicode.GetString(data);
sw.Write(text);
} File.WriteAllBytes(fileName + "_", ms.ToArray());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
} static string Dencrypt(string fileName)
{
string ret = null; try
{
RijndaelManaged RMCrypto = new RijndaelManaged();
FileStream file = new FileStream(fileName, FileMode.Open); CryptoStream crypto = new CryptoStream(file, RMCrypto.CreateDecryptor(Key, IV), CryptoStreamMode.Read); StreamReader SReader = new StreamReader(crypto); ret = SReader.ReadToEnd(); SReader.Close(); file.Close(); }
catch
{
Console.WriteLine("The Listener Failed.");
} return ret;
}
}