AES加密,解密 C# .net 解密支持大文件
2014-11-14 10:52
162 查看
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AES加解密Encode.aspx.cs" Inherits="数据算法_AES加解密Encode" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body text="fd"> <form id="form1" runat="server"> <div> <fieldset> <legend>加密</legend> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="加密提交数据" OnClick="Button1_Click" /> </fieldset> <br /> <fieldset> <legend>解密</legend> <asp:FileUpload ID="FileUpload2" runat="server" /> <asp:Button ID="Button2" runat="server" Text="解密提交数据" OnClick="Button2_Click" /> </fieldset> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class 数据算法_AES加解密Encode : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// 提交数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { //创建一个加密key string guid = Guid.NewGuid().ToString().Replace("-", ""); byte[] ByteKey = System.Text.UTF8Encoding.UTF8.GetBytes(guid.ToCharArray()); System.Security.Cryptography.AesManaged Aes = new System.Security.Cryptography.AesManaged(); var encode = Aes.CreateEncryptor(ByteKey, ByteKey.Take(16).ToArray()); byte[] byteArray = new byte[FileUpload1.PostedFile.InputStream.Length]; FileUpload1.PostedFile.InputStream.Read(byteArray, 0, byteArray.Length); ///加密 var list = encode.TransformFinalBlock(byteArray, 0, byteArray.Length).ToList(); //写入加密KEY for (int i = 31; i >= 0; i--) { //加入到集合 list.Insert(0, ByteKey[i]); } Response.Write(guid); //转换成Array byteArray = list.ToArray(); System.IO.File.WriteAllBytes(Server.MapPath("./temp可删除/") + System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName) + ".Encode", byteArray); Response.Write("<br/>" + System.Text.UTF8Encoding.UTF8.GetString(byteArray.Take(32).ToArray())); } /// <summary> /// 解密数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button2_Click(object sender, EventArgs e) { //写新解密文 using (System.IO.FileStream writeFile = System.IO.File.Create(Server.MapPath("./temp可删除/") + System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName) + ".Dencode")) { //读取加密码key using (System.IO.Stream sr = FileUpload2.PostedFile.InputStream) { System.Security.Cryptography.AesManaged Aes = new System.Security.Cryptography.AesManaged(); byte[] ByteKey = new byte[32]; sr.Read(ByteKey, 0, ByteKey.Length); //读取KEY using (System.Security.Cryptography.ICryptoTransform dencode = Aes.CreateDecryptor(ByteKey, ByteKey.Take(16).ToArray())) { //开始解密一次性 //byte[] result = dencode.TransformFinalBlock(reads, 0, len); //使用DES流解密 using (System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(writeFile, dencode, System.Security.Cryptography.CryptoStreamMode.Write)) { while (sr.CanRead) { byte[] reads = new byte[2048]; //读取的有效长度 int len = sr.Read(reads, 0, reads.Length); if (len == 0) { break; } cs.Write(reads, 0, len); } cs.Close(); } } sr.Close(); } writeFile.Close(); } } }
相关文章推荐
- 黄聪:C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- [转]C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解
- [转]C# 使用 256 位 AES 加密和解密文件
- Asp.Net C#中除了MD5加密之外还经常用到了AES加密、解密与DES加密、解密,本次先介绍DES的加密及解密。注意的是DES的密匙是8位的。
- C# DES 加密/解密,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- [读书笔记]C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- NET下对二进制文件进行加密解密(C#)
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- .NET下对二进制文件进行加密解密(C#)
- URL加密解密 (asp.net C#)
- ASP.NET C# URL加密解密
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- C#实现AES加密和解密函数
- ASP.NET C# URL加密解密
- [原创]DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES
- C#实现256位AES加密和解密
- c# asp.net 字符串加密解密的类
- C#中使用DES和AES加密解密