【代码块】-加解密-字符串的加密与解密

整理代码块

代码块整理后存储,供后期使用

源地址:https://www.cnblogs.com/wifi/articles/2482350.html

using System;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace StringEncryptAndDecrypt
{
  class Program
  {
    //定义密钥  
    static string encryptKey = "Test";

    #region 加密字符串  
    /// <summary> /// 加密字符串   
    /// </summary>  
    /// <param name="str">要加密的字符串</param>  
    /// <returns>加密后的字符串</returns>  
    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 解密字符串   
    /// <summary>  
    /// 解密字符串   
    /// </summary>  
    /// <param name="str">要解密的字符串</param>  
    /// <returns>解密后的字符串</returns>  
    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

    static void Main(string[] args)
    {
      //提示输入字符串 
      Console.Write("输入需要做加密的字符串:");
      Console.WriteLine();                //换行输入   
      string str = Console.ReadLine();          //记录输入的字符串    
      string strNew = Encrypt(str);             //加密字符串    
      Console.WriteLine("加密后:" + strNew);       //输出加密后的字符串    
      Console.WriteLine("解密后:" + Decrypt(strNew));  //解密字符串并输出   
      Console.ReadLine();
    }
  }
}

简单的字符串加密解密方法

//加密
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 i = 0; i < str.Length; i++)
     {
         dtext = dtext + (char)(str[i] - 10 + 1 * 2);
     }
     return dtext;
 }
posted @ 2023-08-14 21:49  叫夏洛啊  阅读(24)  评论(0编辑  收藏  举报