博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AES加密,解密方法
阅读量:6268 次
发布时间:2019-06-22

本文共 1715 字,大约阅读时间需要 5 分钟。

加密:

View Code
//加密,docPath:要加密的文件路径,strKey:秘钥public static void Encrypt(string docPath, string strKey){    //分组加密算法    var fs = new FileStream(docPath, FileMode.Open);    byte[] buffer = new byte[fs.Length];    fs.Read(buffer, 0, buffer.Length);//得到需要加密的字节数组        //设置密钥,密钥向量,两个一样,都是16个byte    var rDel = new RijndaelManaged();    var key = Encoding.UTF8.GetBytes(strKey);    rDel.Key = key;    rDel.Mode = CipherMode.ECB;    rDel.Padding = PaddingMode.PKCS7;    ICryptoTransform cTransform = rDel.CreateEncryptor();    byte[] cipherBytes = cTransform.TransformFinalBlock(buffer, 0, buffer.Length);    var fsEncrypt = new FileStream(docPath + "ENC", FileMode.Create, FileAccess.Write);    fsEncrypt.Write(cipherBytes, 0, cipherBytes.Length);    fsEncrypt.Close();    fsEncrypt.Dispose();    fs.Close();    fs.Dispose();}

解密:

View Code
//解密,fileIn:解密的文件路径,fileOut:解密后的文件存放路径,strKey:秘钥public static void Decrypt(string fileIn, string fileOut, string strKey){    var fsIn = new FileStream(fileIn, FileMode.Open, FileAccess.Read);    var fsOut = new FileStream(fileOut, FileMode.OpenOrCreate, FileAccess.Write);    var rDel = new RijndaelManaged();    var key = Encoding.UTF8.GetBytes(strKey);    rDel.Key = key;    rDel.Mode = CipherMode.ECB;    rDel.Padding = PaddingMode.PKCS7;    var cs = new CryptoStream(fsOut, rDel.CreateDecryptor(), CryptoStreamMode.Write);    var bufferLen = 4096;    var buffer = new byte[bufferLen];    int bytesRead;    do    {        bytesRead = fsIn.Read(buffer, 0, bufferLen);        cs.Write(buffer, 0, bytesRead);    } while (bytesRead != 0);    cs.Close();    fsIn.Close();    fsIn.Dispose();    fsOut.Dispose();}

 

转载于:https://www.cnblogs.com/Benjamin/archive/2013/03/28/2987734.html

你可能感兴趣的文章
poi 导入导出的api说明(大全)
查看>>
Fix-Mapped Addresses
查看>>
fmt标签如何计算两个日期之间相隔的天数
查看>>
Spark核心技术原理透视一(Spark运行原理)
查看>>
《Gradle权威指南》--Gradle任务
查看>>
IntelliJ IDEA创建文件时自动填入作者时间 定制格式
查看>>
Android app启动activity并调用onCreate()方法时都默默地干了什么?
查看>>
远程监视jboss应用java内存的配置
查看>>
前端如何接收 websocket 发送过来的实时数据
查看>>
JavaWeb下载文件response
查看>>
Laravel的三种安装方法总结
查看>>
SpringMVC加载配置Properties文件的几种方式
查看>>
C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginat...
查看>>
java 项目相关 学习笔记
查看>>
numpy opencv matlab eigen SVD结果对比
查看>>
WPF获取某控件的位置,也就是偏移量
查看>>
Boost C++ 库 中文教程(全)
查看>>
solr查询优化(实践了一下效果比较明显)
查看>>
jdk目录详解及其使用方法
查看>>
说说自己对RESTful API的理解s
查看>>