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

作者:MeGoodtoo 时间:2022-01-11 23:30:14 

本文实例讲述了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#,字符串,加密,解密
0
投稿

猜你喜欢

  • java基于netty NIO的简单聊天室的实现

    2023-11-18 15:29:43
  • Java通过Scanner了解if...else if语句

    2023-11-29 04:28:44
  • Java静态代理和动态代理总结

    2022-01-02 18:49:21
  • C# 操作Excel代码总结

    2022-10-11 01:54:29
  • Java 十大排序算法之插入排序刨析

    2021-12-07 02:48:54
  • java程序设计语言的优势及特点

    2022-08-16 09:12:57
  • Spring-AOP @AspectJ进阶之如何绑定代理对象

    2022-05-31 16:08:38
  • Java编程中ArrayList源码分析

    2023-05-20 00:05:25
  • Java实现经典游戏打砖块游戏的示例代码

    2021-06-25 13:30:16
  • 详解Spring IOC 容器启动流程分析

    2023-10-20 00:50:56
  • Feign调用中的两种Header传参方式小结

    2022-10-25 02:47:17
  • 基于Java ActiveMQ的实例讲解

    2023-08-24 08:39:38
  • JAVA操作MongoDB数据库实例教程

    2023-11-18 13:22:27
  • 使用springboot跳转到指定页面和(重定向,请求转发的实例)

    2021-10-21 11:09:24
  • 如何在Mac下配置多个Java版本

    2023-11-07 05:14:34
  • java搭建ftp/sftp进行数据传递的全过程

    2023-11-29 15:08:10
  • JUnit5相关内容简介

    2021-06-28 19:24:28
  • Unity脚本自动添加头部注释的全过程

    2021-06-09 08:38:20
  • SpringBoot @ConfigurationProperties注解的简单使用

    2021-09-03 12:21:57
  • BeanDefinitionRegistryPostProcessor如何动态注册Bean到Spring

    2023-11-24 12:56:16
  • asp之家 软件编程 m.aspxhome.com