为什么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加密算法(转载)相关推荐

  1. 你可能已经知道或者不知道的ASP.NET 2.0技巧(转载)

    1.在CallBack之后保持滚动条的位置 在Asp.Net1.1中,CallBack之后保持滚动条的位置是一件非常痛苦的事情,特别是页中有一个Grid并且想要编辑特定的行.为了不停留在想要得行,页面 ...

  2. Asp.net 序列化应用实例(转载)

    原文作者:寻梦E.net 原文地址:http://www.cnblogs.com/lsmsky/archive/2008/01/15/1040190.html 这是本人这几天学习序列化的几个例子,源代 ...

  3. ASP.NET常用语句(转载)

    1.//弹出对话框.点击转向指定页面 Response.Write(<script>window.alert('该会员没有提交申请,请重新提交!') </script>); R ...

  4. ASP.NET Identity 三(转载)

    转载来源:http://www.cnblogs.com/r01cn/p/5194257.html 注:本文是[ASP.NET Identity系列教程]的第三篇.本系列教程详细.完整.深入地介绍了微软 ...

  5. ASP.NET gridView 显示图片[转载]

    读研的生活简直就是扯淡,中国的教育原来就是这么的悲催,后悔去读研了.不感叹了,因为帮朋友忙,写了一个关于这个的东西,所以转载别人的代码,学习,学习,不管以后如何学习都是第一位的.废话不说,上代码. 在 ...

  6. 从程序员到asp.net架构师转变(转载)

    微软的DotNet开发绝对是属于那种入门容易提高难的技术.而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的.特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此 RU ...

  7. asp.net request编码问题,(转载)

    今天在使用Request.QueryString的时候,发现所有接收到的字符串,只要是带中文的都会变成乱码.后来经过研究,终于找到了原因. ASP.NET默认使用的都是UTF-8编码,而大家一般使用的 ...

  8. MD5加密算法的一些知识

    MD5简介 MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.MD3和MD4发展而来 ...

  9. 真正福建电信笔试题(专业对口请进)(转载)

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 第一部分  一个小时考完   题目跟公务员行政职能测试差不多,只恨这方面我没练习,只 ...

最新文章

  1. python终端中退格键,方向键不能使用
  2. linux系统常用快捷键,文件类型,后缀名,语言修改,转义
  3. 整理了一下linux/ubuntu里面卸载软件的方法
  4. 读《白帽子讲Web安全》之安全意识篇(一)
  5. [翻译]Go与C#的比较,第二篇:垃圾回收
  6. 学习 Python 编程的 19 个资源
  7. linux学习手册,Linux命令学习手册-ps
  8. vue 获取url地址的参数_Vue之vuerouter的使用
  9. mac可以开发php嘛_Mac自带PHP开发环境的简易使用
  10. 《学习之道》第十章方法空间能力是可以后天形成的
  11. C++基础::字符串流(stringstream)
  12. python创意小作品-python turtle库的几个小demo
  13. python能自学成功吗-自学入门Python能学会吗?
  14. android 支付宝手势密码锁,Android仿支付宝手势密码解锁功能
  15. IIS-扩展接口ISAPI-Filter分析
  16. Scrapy--下载器中间件(Downloader Middleware)
  17. No1.初来乍到,请多指教
  18. kail详细安装教程
  19. 《原则》瑞·达利欧 --(五万字手敲笔记)
  20. 矩阵论学习笔记一:线性空间与线性变换

热门文章

  1. MyBatis复习(四):#{}占位符与SQL传参
  2. Python连接MySQL数据库之pymysql模块使用
  3. 内核终端判断,微信?QQ?ipad?IE?移动?Google?opera……
  4. 两个月学习Python的胡言乱语
  5. 求两等长升序序列的中位数
  6. 诗与远方:无题(十六)
  7. Struts2的ValueStack(值栈)介绍
  8. sql慢查询问题排查
  9. Hibernate之DetachedCriteria类详解
  10. springboot公共模块打包_SpringBoot 整合篇