Asp.NET的DESAES加密算法(转载)
为什么80%的码农都做不了架构师?>>>
Asp.Net C#中除了MD5加密之外还经常用到了AES加密、解密与DES加密、解密,本次先介绍DES的加密及解密。注意的是DES的密匙是8位的。
private static readonly String strDesKey = "imaoblog";//加密所需8位密匙
/// <summary>
/// DES加密
/// </summary>
/// <param name="str">要加密字符串</param>
/// <returns>返回加密后字符串</returns>
public static String Encrypt_DES(String str)
{
System.Security.Cryptography.DESCryptoServiceProvider des = new System.Security.Cryptography.DESCryptoServiceProvider();
Byte[] inputByteArray = System.Text.Encoding.Default.GetBytes(str);
des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(strDesKey);
des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(strDesKey);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (Byte b in ms.ToArray())
sb.AppendFormat("{0:X2}", b);
return sb.ToString();
}
/// <summary>
/// DES解密
/// </summary>
/// <param name="str">要解密字符串</param>
/// <returns>返回解密后字符串</returns>
public static String Decrypt_DES(String str)
{
System.Security.Cryptography.DESCryptoServiceProvider des = new System.Security.Cryptography.DESCryptoServiceProvider();
Int32 x;
Byte[] inputByteArray = new Byte[str.Length / 2];
for (x = 0; x < str.Length / 2; x++)
inputByteArray[x] = (Byte)(Convert.ToInt32(str.Substring(x * 2, 2), 16));
des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(strDesKey);
des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(strDesKey);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(ms, des.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
System.Text.StringBuilder ret = new System.Text.StringBuilder();
return System.Text.Encoding.Default.GetString(ms.ToArray());
}
Asp.Net C#续上次的DES加密、解密之后,再发一个AES的加密、解密。AES要注意的是32位密匙。
private static readonly String strAesKey = "iwww.maoblog.comiwww.maoblog.com";//加密所需32位密匙
/// <summary>
/// AES加密
/// </summary>
/// <param name="str">要加密字符串</param>
/// <returns>返回加密后字符串</returns>
public static String Encrypt_AES(String str)
{
Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(strAesKey);
Byte[] toEncryptArray = System.Text.UTF8Encoding.UTF8.GetBytes(str);
System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = System.Security.Cryptography.CipherMode.ECB;
rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateEncryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
/// <summary>
/// AES解密
/// </summary>
/// <param name="str">要解密字符串</param>
/// <returns>返回解密后字符串</returns>
public static String Decrypt_AES(String str)
{
Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(strAesKey);
Byte[] toEncryptArray = Convert.FromBase64String(str);
System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = System.Security.Cryptography.CipherMode.ECB;
rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateDecryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return System.Text.UTF8Encoding.UTF8.GetString(resultArray);
}
本文转载自大奇异果的博客:http://www.cnblogs.com/kiwifruit/archive/2010/10/28/1863141.html
转载于:https://my.oschina.net/skydog/blog/29107
Asp.NET的DESAES加密算法(转载)相关推荐
- 你可能已经知道或者不知道的ASP.NET 2.0技巧(转载)
1.在CallBack之后保持滚动条的位置 在Asp.Net1.1中,CallBack之后保持滚动条的位置是一件非常痛苦的事情,特别是页中有一个Grid并且想要编辑特定的行.为了不停留在想要得行,页面 ...
- Asp.net 序列化应用实例(转载)
原文作者:寻梦E.net 原文地址:http://www.cnblogs.com/lsmsky/archive/2008/01/15/1040190.html 这是本人这几天学习序列化的几个例子,源代 ...
- ASP.NET常用语句(转载)
1.//弹出对话框.点击转向指定页面 Response.Write(<script>window.alert('该会员没有提交申请,请重新提交!') </script>); R ...
- ASP.NET Identity 三(转载)
转载来源:http://www.cnblogs.com/r01cn/p/5194257.html 注:本文是[ASP.NET Identity系列教程]的第三篇.本系列教程详细.完整.深入地介绍了微软 ...
- ASP.NET gridView 显示图片[转载]
读研的生活简直就是扯淡,中国的教育原来就是这么的悲催,后悔去读研了.不感叹了,因为帮朋友忙,写了一个关于这个的东西,所以转载别人的代码,学习,学习,不管以后如何学习都是第一位的.废话不说,上代码. 在 ...
- 从程序员到asp.net架构师转变(转载)
微软的DotNet开发绝对是属于那种入门容易提高难的技术.而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的.特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此 RU ...
- asp.net request编码问题,(转载)
今天在使用Request.QueryString的时候,发现所有接收到的字符串,只要是带中文的都会变成乱码.后来经过研究,终于找到了原因. ASP.NET默认使用的都是UTF-8编码,而大家一般使用的 ...
- MD5加密算法的一些知识
MD5简介 MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.MD3和MD4发展而来 ...
- 真正福建电信笔试题(专业对口请进)(转载)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 第一部分 一个小时考完 题目跟公务员行政职能测试差不多,只恨这方面我没练习,只 ...
最新文章
- python终端中退格键,方向键不能使用
- linux系统常用快捷键,文件类型,后缀名,语言修改,转义
- 整理了一下linux/ubuntu里面卸载软件的方法
- 读《白帽子讲Web安全》之安全意识篇(一)
- [翻译]Go与C#的比较,第二篇:垃圾回收
- 学习 Python 编程的 19 个资源
- linux学习手册,Linux命令学习手册-ps
- vue 获取url地址的参数_Vue之vuerouter的使用
- mac可以开发php嘛_Mac自带PHP开发环境的简易使用
- 《学习之道》第十章方法空间能力是可以后天形成的
- C++基础::字符串流(stringstream)
- python创意小作品-python turtle库的几个小demo
- python能自学成功吗-自学入门Python能学会吗?
- android 支付宝手势密码锁,Android仿支付宝手势密码解锁功能
- IIS-扩展接口ISAPI-Filter分析
- Scrapy--下载器中间件(Downloader Middleware)
- No1.初来乍到,请多指教
- kail详细安装教程
- 《原则》瑞·达利欧 --(五万字手敲笔记)
- 矩阵论学习笔记一:线性空间与线性变换