对称加密解密通用类库函数

原创 2004年06月22日 19:49:00

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

namespace Common
{
 /// <summary>
 /// 加密解密通用类库函数
 ///Copyright (C), 2004, kwklover(邝伟科)
 ///File name:Crypto.cs
 ///Author:邝伟科     Version:1.0        Date:2004年4月21日
 ///Description:可逆的通用对称加密解密函数集                         
 /// </summary>
 public class Crypto
 {
  private string _CryptText;  //待加密和解密的字符序列变量
  private byte[] _CryptKey;   //加密解密私钥变量
  private byte[] _CryptIV;    //加密解密初始化向量IV变量

  /// <summary>
  /// 待加密或解密的字符序列
  /// </summary>
  public string CryptText
  {
   set
   {
       _CryptText=value;
   }
   get
   {
      return _CryptText;
   }
  }

  /// <summary>
  /// 加密私钥
  /// </summary>
  public byte[] CryptKey
  {
   set
   {
       _CryptKey=value;
   }
   get
   {
       return _CryptKey;
   }
  }

  /// <summary>
  /// 加密的初始化向量IV
  /// </summary>
  public byte[] CryptIV
  {
   set
   {
       _CryptIV=value;
   }
   get
   {
       return _CryptIV;
   }
  }

  public Crypto()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

  /// <summary>
  /// 加密函数,用于对字符串进行加密。需要提供相应的密钥和IV。
  /// </summary>
  /// <returns></returns>
  public string Encrypt()
  {
   string strEnText=CryptText;
   byte[] EnKey=CryptKey;
   byte[] EnIV=CryptIV;

   byte[] inputByteArray=System.Text.Encoding.UTF8.GetBytes(strEnText);

   //此处也可以创建其他的解密类实例,但注意不同(长度)的加密类要求不同的密钥Key和初始化向量IV
   RijndaelManaged RMCrypto = new RijndaelManaged();

   MemoryStream ms=new MemoryStream();
   CryptoStream cs=new CryptoStream(ms,RMCrypto.CreateEncryptor(EnKey,EnIV),CryptoStreamMode.Write);
   cs.Write(inputByteArray,0,inputByteArray.Length);
   cs.FlushFinalBlock();

   return Convert.ToBase64String(ms.ToArray());
  }

  /// <summary>
  /// 解密函数,用于经过加密的字符序列进行加密。需要提供相应的密钥和IV。
  /// </summary>
  /// <returns></returns>
  public string Decrypt()
  {
   string strDeText=CryptText;
   byte[] DeKey=CryptKey;
   byte[] DeIV=CryptIV;

      byte[] inputByteArray=Convert.FromBase64String(strDeText);

   //此处也可以创建其他的解密类实例,但注意不同的加密类要求不同(长度)的密钥Key和初始化向量IV
   RijndaelManaged RMCrypto = new RijndaelManaged();

   MemoryStream ms=new MemoryStream();
   CryptoStream cs=new CryptoStream(ms,RMCrypto.CreateDecryptor(DeKey,DeIV),CryptoStreamMode.Write);
   cs.Write(inputByteArray,0,inputByteArray.Length);
   cs.FlushFinalBlock();

   return System.Text.Encoding.UTF8.GetString(ms.ToArray());
  }
 }
}

下面使用上面类代码加密解密的一些部分数据,我本人无法对这些数据进行归纳为有价值的表达,望各位不吝赐教:

加密前英文字母,数字长度范围 加密前中文字符长度范围 加密后长度大小
0-15 0-5 24
16-31 6-10 44
32-47 11-15 64
48-63 16-20 88
64-79 21-15 108
80-95 16-30 128
96-111 31-35 152

对称加密解密通用类库函数

对称加密解密通用类库函数    using System;using System.IO;using System.Text;using System.Security.Cryptography;na...
  • SmartJavaer
  • SmartJavaer
  • 2006年11月01日 14:03
  • 782

对称加密解密通用类库函数

 using System;using System.IO;using System.Text;using System.Security.Cryptography;namespace Common{...
  • jelink
  • jelink
  • 2006年09月11日 21:45
  • 972

C# 对称加解密

///         /// DES加密调用         ///         /// 需要加密的字符串         /// 加密结果         public stat...
  • chensirbbk
  • chensirbbk
  • 2015年04月29日 15:34
  • 631

JAVA中AES对称加密和解密

http://www.cnblogs.com/liunanjava/p/4297854.html AES对称加密和解密 package demo.security; import...
  • u012506661
  • u012506661
  • 2017年08月03日 18:49
  • 140

对称加密解密类

可以对url或者是url参数进行加密解密的帮助类。
  • itmaxin
  • itmaxin
  • 2014年02月25日 10:08
  • 1616

PHP对称加密算法(DES/AES)类

/** * 常用对称加密算法类 * 支持密钥:64/128/256 bit(字节长度8/16/32) * 支持算法:DES/AES(根据密钥长度自动匹配使用:DES:64bit AES:1...
  • u011650048
  • u011650048
  • 2016年02月22日 11:30
  • 2747

C#通用类库--加密解密类

平时经常会遇到一些加密解密之类的处理,特编写成一个专门的类,以后只需要调用即可! 用法很简单,实例化类之后调用相关方法就行!会对应返回加密解密后的字符串! //类名:EcanSecur...
  • my98800
  • my98800
  • 2017年03月02日 11:47
  • 106

跨平台C++ 对称加密解密函数

void Encrypt(unsigned char* pdata,int len,unsigned long key0,unsigned long key1) { union sDWORD { ...
  • maikforever
  • maikforever
  • 2011年05月20日 17:38
  • 1209

java实现对称加密AES和DES的加密、解密

目前主流的加密方式有:1、对称加密:AES、DES      2、非对称加密:RSA、DSA。         本文主要讲解java实现调用AES/DES加密算法包,调用过程最精要的就是下面两句话: ...
  • zmx729618
  • zmx729618
  • 2016年11月01日 11:41
  • 4253

对称加密解密

 #region 加密与解密       EncryptString(...)  DecryptTextFromMemory(...)        ///         /// 加密       ...
  • wangchungxb
  • wangchungxb
  • 2008年07月24日 11:01
  • 577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对称加密解密通用类库函数
举报原因:
原因补充:

(最多只允许输入30个字)