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

 更新时间:2015年03月10日 15:47:52   作者:MeGoodtoo  
这篇文章主要介绍了C#字符串加密解密方法,实例分析了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#程序设计有所帮助。

相关文章

  • 基于C#开发中的那些编码问题(详谈)

    基于C#开发中的那些编码问题(详谈)

    下面小编就为大家分享一篇基于C#开发中的那些编码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • C#切换鼠标左右键习惯无需控制面板中修改

    C#切换鼠标左右键习惯无需控制面板中修改

    本人一直喜欢左手使用鼠标,偶尔同事会临时操作一下,因为他的习惯是右手,还得在控制面板里进行更改,太麻烦了所以就编写一个控制台程序,双击一下即可切换左右键,热爱懒人的你可不要错过了哈
    2013-02-02
  • C#微信开发之启用开发者模式

    C#微信开发之启用开发者模式

    本文主要介绍了C#微信开发中启用开发者模式的步骤与方法,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C# CM框架实现多页面管理的实例代码

    C# CM框架实现多页面管理的实例代码

    这篇文章主要介绍了C# CM框架下一行代码实现多页面管理,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#中#define后面只加一个参数的解释

    C#中#define后面只加一个参数的解释

    今天小编就为大家分享一篇关于C#中#define后面只加一个参数的解释,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • C#使用符号表实现查找算法

    C#使用符号表实现查找算法

    本文详细讲解了C#使用符号表实现查找算法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#中控件动态添加事件绑定的时机详解

    C#中控件动态添加事件绑定的时机详解

    这篇文章主要给大家介绍了在C#中为控件动态添加事件绑定的时机的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • C# Color.FromArgb()及系统颜色对照表一览

    C# Color.FromArgb()及系统颜色对照表一览

    这篇文章主要介绍了C# Color.FromArgb()及系统颜色对照表一览,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 在WPF中使用Interaction.Triggers

    在WPF中使用Interaction.Triggers

    这篇文章介绍了在WPF中使用Interaction.Triggers的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 详解c#索引(Index)和范围(Range)

    详解c#索引(Index)和范围(Range)

    这篇文章主要介绍了c#索引(Index)和范围(Range)的相关资料,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-10-10

最新评论