当前位置:编程学习 > 网站相关 >>

一个.Net加密解密类

using System;
using System.Security.Cryptography;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommHelper
{
 public class CEntrypt
 {
  private static string sKeyForEncryptTitle;

  public CEntrypt()
  { }

  #region 解密Base64
  /// <summary>
  /// 解密Base64
  /// </summary>
  /// <param name="asContent"></param>
  /// <returns></returns>
  public static string Base64TextUTF8Decode(string asContent)
  {
   try
   {
    byte[] bytes = Convert.FromBase64String(asContent);
    UTF8Encoding encoding = new UTF8Encoding();
    return encoding.GetString(bytes);
   }
   catch
   {
    return "";
   }
  }
  #endregion

  #region 加密Base64
  /// <summary>
  /// 加密Base64
  /// </summary>
  /// <param name="asText"></param>
  /// <returns></returns>
  public static string Base64UTF8Encode(string asText)
  {
   try
   {
    string s = asText;
    UTF8Encoding encoding = new UTF8Encoding();
    return Convert.ToBase64String(encoding.GetBytes(s));
   }
   catch
   {
    return "";
   }
  }
  #endregion

  #region  解密UTF8
  /// <summary>
  /// 解密UTF8
  /// </summary>
  /// <param name="asEnCodeText"></param>
  /// <returns></returns>
  public static string DecodeUTF8Text(string asEnCodeText)
  {
   try
   {
    byte[] bytes = Convert.FromBase64String(asEnCodeText);
    UTF8Encoding encoding = new UTF8Encoding();
    return encoding.GetString(bytes);
   }
   catch
   {
    return "";
   }
  }
  #endregion

  #region static 加密UTF8
  /// <summary>
  /// 加密UTF8
  /// </summary>
  /// <param name="asDecodeText"></param>
  /// <returns></returns>
  public string EnCodeUTF8Text(string asDecodeText)
  {
   try
   {
    UTF8Encoding encoding = new UTF8Encoding();
    return Convert.ToBase64String(encoding.GetBytes(asDecodeText));
   }
   catch
   {
    return "";
   }
  }
  #endregion

  #region EncryptHelper加密

  /// <summary>
  /// 加密
  /// </summary>
  /// <param name="Text"></param>
  /// <returns></returns>
  public static string Encrypt(string Text)
  {
   return Encrypt(Text, "EncryptHelper");
  }
  /// <summary>
  /// 加密数据
  /// </summary>
  /// <param name="Text"></param>
  /// <param name="sKey"></param>
  /// <returns></returns>
  public static string Encrypt(string Text, string sKey)
  {
   DESCryptoServiceProvider des = new DESCryptoServiceProvider();
   byte[] inputByteArray;
   inputByteArray = Encoding.Default.GetBytes(Text);
   des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
   des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
   System.IO.MemoryStream ms = new System.IO.MemoryStream();
   CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
   cs.Write(inputByteArray, 0, inputByteArray.Length);
   cs.FlushFinalBlock();
   StringBuilder ret = new StringBuilder();
   foreach (byte b in ms.ToArray())
   {
    ret.AppendFormat("{0:X2}", b);
   }
   return ret.ToString();
  }

  #endregion

  #region EncryptHelper解密


  /// <summary>
  /// 解密
  /// </summary>
  /// <param name="Text"></param>
  /// <returns></returns>
  public static string Decrypt(string Text)
  {
   return Decrypt(Text, "EncryptHelper");
  }
  /// <summary>
  /// 解密数据
  /// </summary>
  /// <param name="Text"></param>
  /// <param name="sKey"></param>
  /// <returns></returns>
  public static string Decrypt(string Text, string sKey)
  {
   DESCryptoServiceProvider des = new DESCryptoServiceProvider();
   int len;
   len = Text.Length / 2;
   byte[] inputByteArray = new byte[len];
   int x, i;
   for (x = 0; x < len; x++)
   {
    i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
    inputByteArray[x] = (byte)i;
   }
   des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
   des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
   System.IO.MemoryStream ms = new System.IO.MemoryStream();
   CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
   cs.Write(inputByteArray, 0, inputByteArray.Length);
   cs.FlushFinalBlock(

补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,