首页 > 编程 > C# > 正文

C#实现基于Base64的加密解密类实例

2020-01-24 02:05:50
字体:
来源:转载
供稿:网友

本文实例讲述了C#实现基于Base64的加密解密类。分享给大家供大家参考。具体如下:

这个C#类是一个基于Base64的加密和解密类,用户可以可以使用默认的秘钥进行加密、解密,也可以自己设定秘钥进行加密和解密,非常实用

using System;using System.Security.Cryptography; using System.Text;namespace DotNet.Utilities{ /// <summary> /// Encrypt 的摘要说明。 /// </summary> public class DEncrypt {  /// <summary>  /// 构造方法  /// </summary>  public DEncrypt()   {   }   #region 使用 缺省密钥字符串 加密/解密string  /// <summary>  /// 使用缺省密钥字符串加密string  /// </summary>  /// <param name="original">明文</param>  /// <returns>密文</returns>  public static string Encrypt(string original)  {   return Encrypt(original,"sharejs.com");  }  /// <summary>  /// 使用缺省密钥字符串解密string  /// </summary>  /// <param name="original">密文</param>  /// <returns>明文</returns>  public static string Decrypt(string original)  {   return Decrypt(original,"sharejs.com",System.Text.Encoding.Default);  }  #endregion  #region 使用 给定密钥字符串 加密/解密string  /// <summary>  /// 使用给定密钥字符串加密string  /// </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>  /// 使用给定密钥字符串解密string  /// </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>  /// 使用给定密钥字符串解密string,返回指定编码方式明文  /// </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));     }   #endregion  #region 使用 缺省密钥字符串 加密/解密/byte[]  /// <summary>  /// 使用缺省密钥字符串解密byte[]  /// </summary>  /// <param name="encrypted">密文</param>  /// <param name="key">密钥</param>  /// <returns>明文</returns>  public static byte[] Decrypt(byte[] encrypted)   {    byte[] key = System.Text.Encoding.Default.GetBytes("sharejs.com");    return Decrypt(encrypted,key);     }  /// <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("sharejs.com");    return Encrypt(original,key);     }   #endregion  #region 使用 给定密钥 加密/解密/byte[]  /// <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);  }   #endregion }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表