文件File加密解密
1 /// <summary> 2 /// 文件操作帮助类,提供文件加密、解密 3 /// </summary> 4 public class FileHelper 5 { 6 7 //public const string fileEncrityKey = "dbe06967-669d-41dbe06967-669d-41"; 8 public const string fileEncrityKey = "ihlih*0037JOHT*)(PIJY*(()JI^)IO%"; 9 10 11 /// <summary> 12 /// 加密 13 /// </summary> 14 /// <param name="docPath">要加密的文件路径</param> 15 /// <param name="destPath">加密后的文件路径</param> 16 /// <param name="strKey">秘钥</param> 17 public static void Encrypt(string docPath, string destPath, string strKey) 18 { 19 //分组加密算法 20 using (var fs = new FileStream(docPath, FileMode.Open)) 21 { 22 var buffer = new byte[fs.Length]; 23 fs.Read(buffer, 0, buffer.Length);//得到需要加密的字节数组 24 //设置密钥,密钥向量,两个一样,都是16个byte 25 var rDel = new RijndaelManaged(); 26 var key = Encoding.UTF8.GetBytes(strKey); 27 rDel.Key = key; 28 rDel.Mode = CipherMode.ECB; 29 rDel.Padding = PaddingMode.PKCS7; 30 ICryptoTransform cTransform = rDel.CreateEncryptor(); 31 byte[] cipherBytes = cTransform.TransformFinalBlock(buffer, 0, buffer.Length); 32 var fsEncrypt = new FileStream(destPath, FileMode.Create, FileAccess.Write); 33 fsEncrypt.Write(cipherBytes, 0, cipherBytes.Length); 34 } 35 } 36 37 //解密,fileIn:解密的文件路径,fileOut:解密后的文件存放路径,strKey:秘钥 38 public static void Decrypt(string fileIn, string fileOut, string strKey) 39 { 40 var fsIn = new FileStream(fileIn, FileMode.Open, FileAccess.Read); 41 var fsOut = new FileStream(fileOut, FileMode.OpenOrCreate, FileAccess.Write); 42 var rDel = new RijndaelManaged(); 43 var key = Encoding.UTF8.GetBytes(strKey); 44 rDel.Key = key; 45 rDel.Mode = CipherMode.ECB; 46 rDel.Padding = PaddingMode.PKCS7; 47 var cs = new CryptoStream(fsOut, rDel.CreateDecryptor(), CryptoStreamMode.Write); 48 var bufferLen = 4096; 49 var buffer = new byte[bufferLen]; 50 int bytesRead; 51 do 52 { 53 bytesRead = fsIn.Read(buffer, 0, bufferLen); 54 cs.Write(buffer, 0, bytesRead); 55 } while (bytesRead != 0); 56 cs.Close(); 57 fsIn.Close(); 58 fsIn.Dispose(); 59 fsOut.Dispose(); 60 } 61 }
初心商城:初心商城
作者:韩迎龙(Kencery) MVC/.NET群:159227188如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏一杯咖啡,本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利

浙公网安备 33010602011771号