110,534
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 解密文件内容
/// </summary>
/// <param name="infile">传入的待解密的文件路径</param>
/// <param name="decryptKey">string decryptKey = "12345768";</param>
/// <param name="Keys">byte[] Keys = new byte[] { 83, 40, 69, 40, 56, 39, 50, 74 };</param>
/// <returns></returns>
public string DecryptorMethod(string infile, string decryptKey, byte[] Keys)
{
string str = "";
if (infile != string.Empty)
{
try
{
using (FileStream stream = new FileStream(infile, FileMode.Open, FileAccess.Read))
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
byte[] bytes = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
ICryptoTransform transform = provider.CreateDecryptor(bytes, rgbIV);
using (CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read))
{
byte[] buffer = new byte[stream.Length];
stream2.Read(buffer, 0, buffer.Length);
stream2.Flush();
for (int i = buffer.Length - 1; i > 0; i--)
{
if (buffer[i] != 0)
{
break;
}
}
return Encoding.UTF8.GetString(buffer);
}
}
}
catch
{
str = "读取文件失败";
}
}
return str;
}
/// <summary>
/// 加密
/// </summary>
/// <param name="EnctryStr">待加密字符串</param>
/// <param name="decryptKey">string decryptKey = "12345768";</param>
/// <param name="Keys">byte[] Keys = new byte[] { 83, 40, 69, 40, 56, 39, 50, 74 };</param>
private void EnctryMethod(string EnctryStr, string decryptKey, byte[] Keys)
{
using (DESCryptoServiceProvider provider = new DESCryptoServiceProvider())
{
byte[] bEncrypt = Encoding.UTF8.GetBytes(EnctryStr);
MemoryStream ms = new System.IO.MemoryStream();
byte[] bytes = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
ICryptoTransform transform = provider.CreateEncryptor(bytes, rgbIV);
using (CryptoStream cs = new CryptoStream(ms, transform, CryptoStreamMode.Write))
{
cs.Write(bEncrypt, 0, bEncrypt.Length);
cs.FlushFinalBlock();
cs.Close();
}
byte[] Buffer = ms.ToArray();
ms.Close();
string path = @"D:\a.txt";
using (FileStream streamWrite = new FileStream(path, FileMode.Create, FileAccess.Write))
{
streamWrite.Write(Buffer, 0, Buffer.Length);
}
}
}
/// <summary>
/// 解密文件内容
/// </summary>
/// <param name="infile">传入的待解密的文件路径</param>
/// <param name="decryptKey">string decryptKey = "12345768";</param>
/// <param name="Keys">byte[] Keys = new byte[] { 83, 40, 69, 40, 56, 39, 50, 74 };</param>
/// <returns></returns>
public string DecryptorMethod(string infile, string decryptKey, byte[] Keys)
{
string str = "";
if (infile != string.Empty)
{
try
{
using (FileStream stream = new FileStream(infile, FileMode.Open, FileAccess.Read))
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
byte[] bytes = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
ICryptoTransform transform = provider.CreateDecryptor(bytes, rgbIV);
using (CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read))
{
byte[] buffer = new byte[stream.Length];
stream2.Read(buffer, 0, buffer.Length);
stream2.Flush();
//for (int i = buffer.Length - 1; i > 0; i--)
//{
// if (buffer[i] != 0)
// {
// break;
// }
//}
return Encoding.UTF8.GetString(buffer);
}
}
}
catch
{
str = "读取文件失败";
}
}
return str;
}