C#字符串加密解密方法实例

本文实例讲述了C#字符串加密解密方法。分享给大家供大家参考。具体如下:

代码如下:

#region 加密解密
static string encryptKey= "Oyea";

#region 加密字符串 public static string Encrypt(string str)

/// <summary>
/// 加密字符串
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <returns>返回加密后的字符串</returns>
public static string Encrypt(string str)
{  
    DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();  //实例化加/解密类对象 
    byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定义字节数组,用来存储密钥  
    byte[] data = Encoding.Unicode.GetBytes(str);//定义字节数组,用来存储要加密的字符串
    MemoryStream MStream = new MemoryStream();//实例化内存流对象    
    //使用内存流实例化加密流对象 
    CryptoStream CStream = new CryptoStream(MStream,descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);    
    CStream.Write(data,0, data.Length);  //向加密流中写入数据    
    CStream.FlushFinalBlock();             //释放加密流    
    return Convert.ToBase64String(MStream.ToArray());//返回加密后的字符串
}
#endregion

#region 解密字符串   public static string Decrypt(string str)

/// <summary>
/// 解密字符串
/// </summary>
/// <param name="str">要解密的字符串</param>
/// <returns>返回解密后的字符串</returns>
public static string Decrypt(string str)
{    
    DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();  //实例化加/解密类对象  
    byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定义字节数组,用来存储密钥  
    byte[] data = Convert.FromBase64String(str);//定义字节数组,用来存储要解密的字符串
    MemoryStream MStream = new MemoryStream();//实例化内存流对象    
    //使用内存流实例化解密流对象     
    CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);  
    CStream.Write(data,0, data.Length);      //向解密流中写入数据   
    CStream.FlushFinalBlock();              //释放解密流    
    return Encoding.Unicode.GetString(MStream.ToArray());      //返回解密后的字符串
}
#endregion
#endregion

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#字符串使用密钥进行加解密

    第一个为大家分享的是C#字符串使用密钥进行加解密代码,具体内容如下 public class DesEncrypt { /// <summary> /// 算法偏移量 /// </summary> const string m_IV = "12345678"; /// <summary> /// 功能描述:根据输入的密钥生成8位密钥 /// 作 者: 爱给模板网 2gei.cn /// 创建日期:2015-07-20 17:25:26 /// <

  • C#常用字符串加密解密方法封装代码

    复制代码 代码如下: //方法一//须添加对System.Web的引用//using System.Web.Security;/// <summary>/// SHA1加密字符串/// </summary>/// <param name="source">源字符串</param>/// <returns>加密后的字符串</returns>public string SHA1(string source){    r

  • C#最简单的字符串加密解密方法

    public static string encode(string str) { string htext = ""; for (int i = 0; i < str.Length; i++) { htext = htext + (char)(str[i] + 10 - 1 * 2); } return htext; } public static string decode(string str) { string dtext = ""; for (int

  • C#实现简易的加密、解密字符串工具类实例

    本文实例讲述了C#实现简易的加密.解密字符串工具类.分享给大家供大家参考.具体如下: 这里的类CypherHelper是一个用于加密.解密字符串的工具类~~~,适合于方便地加密.解密长度较短的密码等字符串(C#里面已经有了库System.Security.Cryptography,对于比较长的字符串或流来说是一个更好的选择) 类CypherHelper代码: class CypherHelper { /// <summary> /// 加密字符串 /// </summary> //

  • Asp.net,C# 加密解密字符串的使用详解

    首先在web.config | app.config 文件下增加如下代码: 复制代码 代码如下: <?xml version="1.0"?>  <configuration>    <appSettings>      <add key="IV" value="SuFjcEmp/TE="/>      <add key="Key" value="KIPSToILG

  • C#几种截取字符串的方法小结

    1.根据单个分隔字符用split截取 例如 复制代码 代码如下: string st="GT123_1"; string[] sArray=st.split("_"); 即可得到sArray[0]="GT123",sArray[1]="1"; 2.利用多个字符来分隔字符串 例如 复制代码 代码如下: string str = "GTAZB_JiangjBen_123";string[] sArray = s

  • C#加密app.config中连接字符串的方法

    本文实例讲述了C#加密app.config中连接字符串的方法.分享给大家供大家参考.具体如下: 连接字符串中包含数据库的访问信息,帐号和密码,因此一般不以明文显示,本代码用来加密连接字符串. public static class EncryptConnection { public static void EncryptConnectionString(bool encrypt) { Configuration configFile = null; try { // Open the conf

  • 解析Asp.net,C# 纯数字加密解密字符串的应用

    继上篇:Asp.net,C# 加密解密字符串的使用详解,有网友提问: 也就是说加密后的数据不再是:N8lAaHMFtSAQgaf3+RUFng== 希望encryptedString是"120387789370480938409832840923492384028934-"; 当然上面的数字是我随便乱敲的. 那么如何实现纯数字呢?? 想法很简单,只要将字符变成Ascll 码就可以了.例如a:97, =:61; 那么encryptedString 就可以变成 97 81 61 33 44

  • C#中字符串的加密的源码

    可以用DSA和RSA,如: using System; using System.Text; using System.Security.Cryptography; class dsacrypto_SignData { public static void Main(String[] args){ //先要将字符串转换为字节数组,这与编码有关. String str = "this is a test."; byte[] bytes = Encoding.ASCII.GetBytes(

  • c#实现16进制和字符串之间转换的代码

    十六进制字符串与数值类型之间转换(C# 编程指南) 以下示例演示如何执行下列任务: 获取字符串中每个字符的十六进制值. 获取与十六进制字符串中的每个值对应的字符. 将十六进制 string 转换为整型. 将十六进制 string 转换为浮点型. 将字节数组转换为十六进制 string. 示例 此示例输出 string 中的每个字符的十六进制值.首先,它将 string 分析为字符数组,然后对每个字符调用 ToInt32(Char) 以获取相应的数字值.最后,在 string 中将数字的格式设置为

随机推荐