• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#字符串使用密钥进行加解密

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#字符串加密解密,c#字符串截取,c#字符串转数字,c#字符串分割,c#字符串拼接等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

第一个为大家分享的是C#字符串使用密钥进行加解密代码,具体内容如下

public class DesEncrypt
  {
    /// <summary>
    /// 算法偏移量
    /// </summary>
    const string m_IV = "12345678";
 
    /// <summary>
    /// 功能描述:根据输入的密钥生成8位密钥
    /// 作  者: 爱给模板网 2gei.cn
    /// 创建日期:2015-07-20 17:25:26
    /// </summary>
    /// <param name="strkey">strkey</param>
    /// <returns>8位密钥</returns>
    private static string GetKey(string strkey)
    {
      if (string.IsNullOrEmpty(strkey))
      {
        strkey = "InfoColl";
      }
      if (strkey.Length % 8 == 0)
      {
        return strkey;
      }
      else
      {
        return GetKey(strkey + "0");
      }
    }
 
    /// <summary>
    /// 功能描述:加密字符串
    /// 作  者: 爱给模板网 2gei.cn
    /// 创建日期:2015-07-20 17:18:31
    /// 任务编号:
    /// </summary>
    /// <param name="strSourceString">原字符串</param>
    /// <param name="strKey">密钥</param>
    /// <returns>加密后的字符串</returns>
    public static string Encrypt(string strSourceString, string strKey)
    {
      strKey = GetKey(strKey);
      byte[] btKey = Encoding.UTF8.GetBytes(strKey);
 
      byte[] btIV = Encoding.UTF8.GetBytes(m_IV);
 
      DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 
      using (MemoryStream ms = new MemoryStream())
      {
        try
        {
          byte[] inData = Encoding.UTF8.GetBytes(strSourceString);
          using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
          {
            cs.Write(inData, 0, inData.Length);
 
            cs.FlushFinalBlock();
          }
 
          return Convert.ToBase64String(ms.ToArray());
        }
        catch
        {
          return strSourceString;
        }
      }
    }
 
    /// <summary>
    /// 功能描述:解密字符串
    /// 作  者: 爱给模板网 2gei.cn
    /// 创建日期:2015-07-20 17:18:49
    /// 任务编号:
    /// </summary>
    /// <param name="strEncryptedString">原字符串</param>
    /// <param name="strKey">密钥</param>
    /// <returns>解密后的字符串</returns>
    public static string Decrypt(string strEncryptedString, string strKey)
    {
      strKey = GetKey(strKey);
      byte[] btKey = Encoding.UTF8.GetBytes(strKey);
 
      byte[] btIV = Encoding.UTF8.GetBytes(m_IV);
 
      DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 
      using (MemoryStream ms = new MemoryStream())
      {
        try
        {
          byte[] inData = Convert.FromBase64String(strEncryptedString);
          using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
          {
            cs.Write(inData, 0, inData.Length);
 
            cs.FlushFinalBlock();
          }
 
          return Encoding.UTF8.GetString(ms.ToArray());
        }
        catch
        {
          return strEncryptedString;
        }
      }
    }
  }

</div>

C#字符串加密和解密

using System.Security.Cryptography;
using System.IO;
//默认密钥向量
    private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

    /// <summary>
    /// DES加密字符串
    /// </summary>
    /// <param name="encryptString">待加密的字符串</param>
    /// <param name="encryptKey">加密密钥,要求为8位</param>
    /// <returns>加密成功返回加密后的字符串,失败返回源串 </returns>
    public static string EncryptDES(string encryptString, string encryptKey)
    {
      try
      {
        byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));//转换为字节
        byte[] rgbIV = Keys;
        byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
        DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();//实例化数据加密标准
        MemoryStream mStream = new MemoryStream();//实例化内存流
        //将数据流链接到加密转换的流
        CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
        cStream.Write(inputByteArray, 0, inputByteArray.Length);
        cStream.FlushFinalBlock();
        return Convert.ToBase64String(mStream.ToArray());
      }
      catch
      {
        return encryptString;
      }
    }

    /// <summary>
    /// DES解密字符串
    /// </summary>
    /// <param name="decryptString">待解密的字符串</param>
    /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
    /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
    public static string DecryptDES(string decryptString, string decryptKey)
    {
      try
      {
        byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
        byte[] rgbIV = Keys;
        byte[] inputByteArray = Convert.FromBase64String(decryptString);
        DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
        MemoryStream mStream = new MemoryStream();
        CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
        cStream.Write(inputByteArray, 0, inputByteArray.Length);
        cStream.FlushFinalBlock();
        return Encoding.UTF8.GetString(mStream.ToArray());
      }
      catch
      {
        return decryptString;
      }
    }



      string EncryptStr = EncryptDESString.EncryptDES("aaaaaaaaaa", "ssssssss"); //返回加密后的字符串
      string DecryptStr = EncryptDESString.DecryptDES(EncryptStr, "ssssssss");//解密字符串

</div>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#字符串使用密钥进行加解密
  • C#最简单的字符串加密解密方法
  • C#中字符串的加密的源码

相关文章

  • 2017-05-28基于C#实现简单离线注册码生成与验证
  • 2017-05-28C#基础之泛型委托实例教程
  • 2017-05-28C#影院售票系统毕业设计(2)
  • 2017-05-28C#在后台运行操作(BackgroundWorker用法)示例分享
  • 2017-05-28C#读写txt文件多种方法实例代码
  • 2017-05-28C#日期控件datetimepicker保存空值的三种方法
  • 2017-05-28C#实现在网页中根据url截图并输出到网页的方法
  • 2017-05-28C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法
  • 2017-05-28利用微软com组件mstscax.dll实现window7远程桌面功能
  • 2017-05-28C#身份证号码验证是否正确

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#泛型用法实例分析
    • 谈C# using的用法与好处
    • linq语法基础使用示例
    • c#友好显示日期 c#日期datetime使用方法
    • C#实现延时并自动关闭MessageBox的方法
    • C#配置文件Section节点处理总结
    • C# WinForm创建Excel文件的实例
    • WinForm实现拦截窗体上各个部位的点击特效实例
    • c# rsa注册实现加密文字
    • winform拦截关闭按钮触发的事件示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有