1. using System.Security.Cryptography;
  2. using System.IO;
  3. //默认密钥向量
  4. private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
  5.  
  6. /// <summary>
  7. /// DES加密字符串
  8. /// </summary>
  9. /// <param name="encryptString">待加密的字符串</param>
  10. /// <param name="encryptKey">加密密钥,要求为8位</param>
  11. /// <returns>加密成功返回加密后的字符串,失败返回源串 </returns>
  12. public static string EncryptDES(string encryptString, string encryptKey)
  13. {
  14. try
  15. {
  16. byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(, ));//转换为字节
  17. byte[] rgbIV = Keys;
  18. byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
  19. DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();//实例化数据加密标准
  20. MemoryStream mStream = new MemoryStream();//实例化内存流
  21. //将数据流链接到加密转换的流
  22. CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
  23. cStream.Write(inputByteArray, , inputByteArray.Length);
  24. cStream.FlushFinalBlock();
  25. return Convert.ToBase64String(mStream.ToArray());
  26. }
  27. catch
  28. {
  29. return encryptString;
  30. }
  31. }
  32.  
  33. /// <summary>
  34. /// DES解密字符串
  35. /// </summary>
  36. /// <param name="decryptString">待解密的字符串</param>
  37. /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
  38. /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
  39. public static string DecryptDES(string decryptString, string decryptKey)
  40. {
  41. try
  42. {
  43. byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
  44. byte[] rgbIV = Keys;
  45. byte[] inputByteArray = Convert.FromBase64String(decryptString);
  46. DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
  47. MemoryStream mStream = new MemoryStream();
  48. CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
  49. cStream.Write(inputByteArray, , inputByteArray.Length);
  50. cStream.FlushFinalBlock();
  51. return Encoding.UTF8.GetString(mStream.ToArray());
  52. }
  53. catch
  54. {
  55. return decryptString;
  56. }
  57. }
  58.  
  59. string EncryptStr = EncryptDESString.EncryptDES("aaaaaaaaaa", "ssssssss"); //返回加密后的字符串
  60. string DecryptStr = EncryptDESString.DecryptDES(EncryptStr, "ssssssss");//解密字符串

原文地址:http://www.cnblogs.com/wuhuisheng/archive/2012/08/20/2647202.html

[转载]C#字符串加密和解密的更多相关文章

  1. C#中对Web.Config、App.Config字符串加密与解密的方法

    我们平常的项目里面的配置文件通常都是明文形式的存在,现在就是为了项目安全性增强,同时又显得高逼格点, 我们可以采用加密的方式,而我们C#很强大,因为他内置的一些指令方式,很方便而且使用起来还不用解密, ...

  2. C#/JS AES字符串加密和解密

    往往我们有一种需求:在页面端实现对即将传入到后台端的某些字符串进行加密,然后在后台端对传入进来的字符串做解密.在一些有安全要求的数据传输上会用到此种方式 下面分别列出js端和后台端的加密或解密代码. ...

  3. asp.net web.config数据库连接字符串加密与解密

    在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或者数据库发生变更,那么我们就不得不修改源程序并重新将其编译.最好的解决方法 ...

  4. C#中常用的字符串加密,解密方法封装,包含只加密,不解密的方法

    //方法一//须添加对System.Web的引用//using System.Web.Security;/// <summary>/// SHA1加密字符串/// </summary ...

  5. [转载]oracle的加密和解密

    加密函数 create or replace function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 isv_tex ...

  6. Delphi 字符串加密与解密函数

    EncdDecd 单元: EncodeString.DecodeString.EncodeBase64.DecodeBase64 uses EncdDecd; const str = '万一的 Del ...

  7. 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作

    分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...

  8. 3. 深入研究 UCenter API 之 加密与解密(转载)

    1.  深入研究 UCenter API 之 开篇 (转载) 2.  深入研究 UCenter API 之 通讯原理(转载) 3.  深入研究 UCenter API 之 加密与解密(转载) 4.  ...

  9. java对字符串进行加密和解密(以下是来自其他博主)

    背景:需要对读取数据库配置的文件进行加密,防止他人拿到数据,而对自己的代码,有要实现进行解密,网上给的加密方式,什么MD5,base64,还有等等,都太复杂,而且有些是单向的,只加密不解密,以下代码, ...

随机推荐

  1. [转]在.Net中使用Oracle的表类型和对象类型

    本文转自:http://www.cnblogs.com/studyzy/archive/2010/10/13/1850161.html 在一般的数据存取操作过程中,如果要对一个主表和对应的子表进行插入 ...

  2. Java接口的表现形式

    一.概念理解 Java接口是一些方法特征的集合,并没有方法的具体实现,类似于电源插座,可以充不同类型的电器,但是必须适配特定的接口规范.接口是抽象化的,所以其不能被实例化的(不能有构造函数,创建对象) ...

  3. 【HTML XHTML CSS基础教程(第6版)】笔记之HTML XHTML笔记(1~6章)

      第1章 网页的构造块   1.(X)HTML有三种主要的标记类型:元素,属性,值.   2.浏览器主要通过查看文件的扩展名(.htm或.html)来得知应该按照网页的方式读取文本文件.   3.H ...

  4. asp生成静态HTML(动态读取)

    这样的代码多用于我们没有实现设计生成静态的功能,但又想临时将一些动态页面生成静态的,直接获取动态内容并保存为静态的 复制代码代码如下: <!--#include file="admin ...

  5. left join 改写标量子查询

    数据库环境:SQL SERVER 2005 有一博彩的赔率是1:20,它有2张业务表:smuchs(投注表),lottery(开奖表). smuchs表有3个字段,分别是sno(投注号码).smuch ...

  6. Oracle存储过程学习使用

    存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); 变量2 类型(值 ...

  7. 通过正则获取url参数

    1.通过正则来获取url地址栏的参数: ---------------------------我是分割线-------------------------------- var reg1=/([^?& ...

  8. Intellij IDEA配置优化--转载

    1. 在线激活 安装IntelliJ IDEA 2016.1.2版本后,在联网状态下激活.Help --> Register,选择lisence server,粘贴地址http://www.it ...

  9. UTF-8/UTF-16/UTF-32

    UTF-8/UTF-16/UTF-32 一.UTF-8/UTF-16/UTF-32三者的区别 二.BOM的检测与删除 1.用VIM去除<feff>,即 U+FEFF.注意:这是一个字符,而 ...

  10. Python爬虫第一集

    import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.read() 简单 ...