/Src/CRM.Common/EncodeHelper.cs
http://20121126.codeplex.com · C# · 215 lines · 109 code · 27 blank · 79 comment · 4 complexity · 4cbbdf432b366ccf63b1a312c31d5d38 MD5 · raw file
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Security.Cryptography;
- using System.Configuration;
-
- namespace CRM.Common
- {
- /// <summary>
- /// Base64???
- /// </summary>
- public class Base64
- {
- /// <summary>
- /// ??????base64????
- /// </summary>
- /// <param name="SourceString">???????</param>
- /// <param name="Ens">System.Text.Encoding ??????????????
- /// System.Text.Encoding.GetEncoding("gb2312")</param>
- /// <returns>?????????</returns>
- public static string EncodingString(string SourceString, System.Text.Encoding Ens)
- {
- return Convert.ToBase64String(Ens.GetBytes(SourceString));
- }
-
- /// <summary>
- /// ??????????????base64????
- /// </summary>
- /// <param name="SourceString">???????</param>
- /// <returns>?????????</returns>
- public static string EncodingString(string SourceString)
- {
- return EncodingString(SourceString, System.Text.Encoding.Default);
- }
-
- /// <summary>
- /// ?base64?????????????????
- /// </summary>
- /// <param name="Base64String">Base64???????</param>
- /// <param name="Ens">System.Text.Encoding??????????????
- /// System.Text.Encoding.Default</param>
- /// <returns>?????????</returns>
- public static string DecodingString(string Base64String, System.Text.Encoding Ens)
- {
- return Ens.GetString((Convert.FromBase64String(Base64String)));
- }
-
- /// <summary>
- ///?????????Base64?????????????????
- /// </summary>
- /// <param name="Base64String">Base64???????</param>
- /// <returns>?????????</returns>
- public static string DecodingString(string Base64String)
- {
- return DecodingString(Base64String, System.Text.Encoding.Default);
- }
- }
-
- /// <summary>
- /// DES???
- /// </summary>
- public class DES
- {
- public static string GenerateKey()
- {
- // ????DES ??????????Key
- DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
-
- // ???????Key ????
- return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
- }
-
- /// <summary>
- /// DES ?? Key
- /// </summary>
- public static string DESKey
- {
- get
- {
- if (ConfigurationManager.AppSettings["desEncryKey"] != null)
- return ConfigurationManager.AppSettings["desEncryKey"];
-
- return "agijkmpk";
- }
- }
-
- /// <summary>
- /// ?????
- /// </summary>
- /// <param name="sInputString">????</param>
- /// <param name="sKey">Key</param>
- /// <returns>????</returns>
- public static string EncryptString(string sInputString, string sKey)
- {
- byte[] data = Encoding.Default.GetBytes(sInputString);
- byte[] result;
- DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
- DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
- DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
- ICryptoTransform desencrypt = DES.CreateEncryptor();
- result = desencrypt.TransformFinalBlock(data, 0, data.Length);
-
- string desString = "";
- for (int i = 0; i < result.Length; i++)
- {
- desString += result[i].ToString() + "-";
- }
-
- //return desString.TrimEnd('-');
- return BitConverter.ToString(result);
- }
-
- /// <summary>
- /// ?????
- /// </summary>
- /// <param name="sInputString">????</param>
- /// <param name="sKey">Key</param>
- /// <returns>????</returns>
- public static string DecryptString(string sInputString, string sKey)
- {
- string[] sInput = sInputString.Split("-".ToCharArray());
- byte[] data = new byte[sInput.Length];
- byte[] result;
- for (int i = 0; i < sInput.Length; i++)
- data[i] = byte.Parse(sInput[i], System.Globalization.NumberStyles.HexNumber);
-
- DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
- DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
- DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
- ICryptoTransform desencrypt = DES.CreateDecryptor();
- result = desencrypt.TransformFinalBlock(data, 0, data.Length);
- return Encoding.Default.GetString(result);
- }
- }
-
- /// <summary>
- ///?????????base64+??DES???????????
- /// </summary>
- public class DoubleEncodeHelper
- {
- #region ?????????base64+??DES???????????
-
- /// <summary>
- /// ????
- /// </summary>
- /// <param name="inputString"></param>
- /// <param name="sKey"></param>
- /// <returns></returns>
- public static string Encode(string inputString, string sKey)
- {
- //????DES??
- string content = DES.EncryptString(inputString, sKey);
-
- //????base64??
- content = Base64.EncodingString(content);
-
- //?????DES??
- content = DES.EncryptString(content, sKey);
-
- //?????base64??
- content = Base64.EncodingString(content);
-
- return content;
- }
- #endregion
-
- #region ???????Base64??+??DES??????????
- /// <summary>
- /// ???????Base64??+??DES??????????
- /// </summary>
- /// <param name="inputString"></param>
- /// <param name="sKey"></param>
- /// <returns></returns>
- public static string Uncode(string inputString, string sKey)
- {
- //????base64??
- inputString = Base64.DecodingString(inputString);
-
- //???DES??
- inputString = DES.DecryptString(inputString, sKey);
-
- //????base64??
- inputString = Base64.DecodingString(inputString);
-
- //???DES??
- inputString = DES.DecryptString(inputString, sKey);
-
- return inputString;
- }
- #endregion
- }
-
- #region MD5???
- /// <summary>
- /// MD5???
- /// </summary>
- public class MD5
- {
- /// <summary>
- /// Md5??
- /// </summary>
- /// <param name="sInputString">????</param>
- /// <returns></returns>
- public string HashString(string sInputString)
- {
- System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
- string encoded = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(sInputString))).Replace("-", "");
- return encoded;
- }
- }
- #endregion
- }