博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 字符串加密解密
阅读量:6336 次
发布时间:2019-06-22

本文共 1937 字,大约阅读时间需要 6 分钟。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Security;  
  6. using System.Security.Cryptography;  
  7. using System.IO;  
  8. namespace ConsoleApplication1  
  9. {  
  10.     class Program  
  11.     {  
  12.         static void Main(string[] args)  
  13.         {  
  14.             Console.WriteLine(EncryptDES("aaaaaaaaaaaaaaaa""22222222"));//加密   
  15.             Console.WriteLine(DecryptDES(EncryptDES("aaaaaaaaaaaaaaaa""22222222"), "22222222"));//解密   
  16.         }  
  17.         //默认密钥向量   
  18.         private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };         
  19.         /// DES加密字符串           
  20.         /// 待加密的字符串   
  21.         /// 加密密钥,要求为8位   
  22.         /// 加密成功返回加密后的字符串,失败返回源串    
  23.         public static string EncryptDES(string encryptString, string encryptKey)  
  24.         {  
  25.             try  
  26.             {  
  27.                 byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));  
  28.                 byte[] rgbIV = Keys;  
  29.                 byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);  
  30.                 DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();  
  31.                 MemoryStream mStream = new MemoryStream();  
  32.                 CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);  
  33.                 cStream.Write(inputByteArray, 0, inputByteArray.Length);  
  34.                 cStream.FlushFinalBlock();  
  35.                 return Convert.ToBase64String(mStream.ToArray());  
  36.             }  
  37.             catch  
  38.             {  
  39.                 return encryptString;  
  40.             }  
  41.         }  
  42.         ///    
  43.         /// DES解密字符串           
  44.         /// 待解密的字符串   
  45.         /// 解密密钥,要求为8位,和加密密钥相同   
  46.         /// 解密成功返回解密后的字符串,失败返源串   
  47.         public static string DecryptDES(string decryptString, string decryptKey)  
  48.         {  
  49.             try  
  50.             {  
  51.                 byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);  
  52.                 byte[] rgbIV = Keys;  
  53.                 byte[] inputByteArray = Convert.FromBase64String(decryptString);  
  54.                 DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();  
  55.                 MemoryStream mStream = new MemoryStream();  
  56.                 CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);  
  57.                 cStream.Write(inputByteArray, 0, inputByteArray.Length);  
  58.                 cStream.FlushFinalBlock();  
  59.                 return Encoding.UTF8.GetString(mStream.ToArray());  
  60.             }  
  61.             catch  
  62.             {  
  63.                 return decryptString;  
  64.             }  
  65.         }  
  66.     }  
  67. }   

转载于:https://www.cnblogs.com/zyj-keyen/archive/2012/07/24/2606302.html

你可能感兴趣的文章
Windows Server 2012R2 桌面体验问题直通车
查看>>
Springboot配置文件读取报错Configuration property name 'projectUrl' is not valid:
查看>>
HTTP状态码
查看>>
今天的学习
查看>>
面试必问之JVM原理
查看>>
mysql主主同步+Keepalived
查看>>
java位移运算符 转
查看>>
转:strcpy实现的考察要点
查看>>
【转】Map/Reduce简介
查看>>
LOB
查看>>
js验证姓名和身份证号
查看>>
Solr空格默认值是AND还是OR
查看>>
(转)SQL SERVER 生成建表脚本
查看>>
对 Java Integer.valueOf() 的一些了解
查看>>
253:Cube painting
查看>>
2016 年 Java 工具和技术的调查:IDEA 已超过
查看>>
Robot Framework学习笔记(十)------Selenium2Library库
查看>>
openssl 自建CA签发证书 网站https的ssl通信
查看>>
18、jmeter对数据库进行压力测试
查看>>
19、Linux命令对服务器内存进行监控
查看>>