0
点赞
收藏
分享

微信扫一扫

C#一个封装的加密解密类

343d85639154 2022-02-22 阅读 32

<script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>      using  System;

     using  System.Text;

     using  System.Globalization;

     using  System.Security.Cryptography;

     using  System.Windows.Forms;

     namespace  Jh.Encrypts

    {

      public   class  JhEncrypt

     {

       ///   <summary>

       ///  构造方法

       ///   </summary>

       public  JhEncrypt()

      {

      }

       ///   <summary>

       ///  使用缺省密钥字符串加密

       ///   </summary>

       ///   <param name="original"> 明文 </param>

       ///   <returns> 密文 </returns>

       public   static   string  Encrypt( string  original)

      {

        return  Encrypt(original, " JASONHEUNG " );

      }

       ///   <summary>

       ///  使用缺省密钥解密

       ///   </summary>

       ///   <param name="original"> 密文 </param>

       ///   <returns> 明文 </returns>

       public   static   string  Decrypt( string  original)

      {

        return  Decrypt(original, " JASONHEUNG " ,System.Text.Encoding.Default);

      }

       ///   <summary>

       ///  使用给定密钥解密

       ///   </summary>

       ///   <param name="original"> 密文 </param>

       ///   <param name="key"> 密钥 </param>

       ///   <returns> 明文 </returns>

       public   static   string  Decrypt( string  original,  string  key)

      {

        return  Decrypt(original,key,System.Text.Encoding.Default);

      }

       ///   <summary>

       ///  使用缺省密钥解密,返回指定编码方式明文

       ///   </summary>

       ///   <param name="original"> 密文 </param>

       ///   <param name="encoding"> 编码方式 </param>

       ///   <returns> 明文 </returns>

       public   static   string  Decrypt( string  original,Encoding encoding)

      {

        return  Decrypt(original, " JASONHEUNG " ,encoding);

      }

       ///   <summary>

       ///  使用给定密钥加密

       ///   </summary>

       ///   <param name="original"> 原始文字 </param>

       ///   <param name="key"> 密钥 </param>

       ///   <param name="encoding"> 字符编码方案 </param>

       ///   <returns> 密文 </returns>

       public   static   string  Encrypt( string  original,  string  key)

      {

        byte [] buff  =  System.Text.Encoding.Default.GetBytes(original);

        byte [] kb  =  System.Text.Encoding.Default.GetBytes(key);

        return  Convert.ToBase64String(Encrypt(buff,kb));

      }

       ///   <summary>

       ///  使用给定密钥解密

       ///   </summary>

       ///   <param name="encrypted"> 密文 </param>

       ///   <param name="key"> 密钥 </param>

       ///   <param name="encoding"> 字符编码方案 </param>

     ///   <returns> 明文 </returns>

       public   static   string  Decrypt( string  encrypted,  string  key,Encoding encoding)

      {

        byte [] buff  =  Convert.FromBase64String(encrypted);

        byte [] kb  =  System.Text.Encoding.Default.GetBytes(key);

        return  encoding.GetString(Decrypt(buff,kb));

      }

       ///   <summary>

       ///  生成MD5摘要

       ///   </summary>

       ///   <param name="original"> 数据源 </param>

       ///   <returns> 摘要 </returns>

       public   static   byte [] MakeMD5( byte [] original)

      {

       MD5CryptoServiceProvider hashmd5  =   new  MD5CryptoServiceProvider();

        byte [] keyhash  =  hashmd5.ComputeHash(original);

       hashmd5  =   null ;

        return  keyhash;

      }

       ///   <summary>

       ///  使用给定密钥加密

       ///   </summary>

       ///   <param name="original"> 明文 </param>

       ///   <param name="key"> 密钥 </param>

       ///   <returns> 密文 </returns>

       public   static   byte [] Encrypt( byte [] original,  byte [] key)

      {

       TripleDESCryptoServiceProvider des  =   new  TripleDESCryptoServiceProvider();

       des.Key  =   MakeMD5(key);

       des.Mode  =  CipherMode.ECB;


        return  des.CreateEncryptor().TransformFinalBlock(original,  0 , original.Length);

      }

       ///   <summary>

       ///  使用给定密钥解密数据

       ///   </summary>

       ///   <param name="encrypted"> 密文 </param>

       ///   <param name="key"> 密钥 </param>

       ///   <returns> 明文 </returns>

       public   static   byte [] Decrypt( byte [] encrypted,  byte [] key)

      {

       TripleDESCryptoServiceProvider des  =   new  TripleDESCryptoServiceProvider();

       des.Key  =   MakeMD5(key);

       des.Mode  =  CipherMode.ECB;

        return  des.CreateDecryptor().TransformFinalBlock(encrypted,  0 , encrypted.Length);

      }


       ///   <summary>

       ///  使用给定密钥加密

       ///   </summary>

       ///   <param name="original"> 原始数据 </param>

       ///   <param name="key"> 密钥 </param>

       ///   <returns> 密文 </returns>

       public   static   byte [] Encrypt( byte [] original)

      {

        byte [] key  =  System.Text.Encoding.Default.GetBytes( " JASONHEUNG " );

        return  Encrypt(original,key);

      }

       ///   <summary>

       ///  使用缺省密钥解密数据

       ///   </summary>

       ///   <param name="encrypted"> 密文 </param>

       ///   <param name="key"> 密钥 </param>

       ///   <returns> 明文 </returns>

       public   static   byte [] Decrypt( byte [] encrypted)

      {

        byte [] key  =  System.Text.Encoding.Default.GetBytes( " JASONHEUNG " );

        return  Decrypt(encrypted,key);

      }


     }

    }

举报

相关推荐

0 条评论