代码
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security.Cryptography;
using System.Text;
using System.IO;
/// <summary>
/// Common 的摘要说明
/// </summary>
public class Common
{
public Common()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 获取IP地址
/// </summary>
/// <returns></returns>
public static string GetAddIP()
{
string result = HttpContext.Current.Request.ServerVariables[ " HTTP_X_FORWARDED_FOR " ];
if ( null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables[ " REMOTE_ADDR " ];
}
if ( null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
#region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="strSource"> 需要加密的字符串 </param>
/// <returns> MD5加密后的字符串 </returns>
public static string Md5Encrypt( string strSource)
{
// 把字符串放到byte数组中
byte [] bytIn = System.Text.Encoding.Default.GetBytes(strSource);
// 建立加密对象的密钥和偏移量
byte [] iv = { 102 , 16 , 93 , 156 , 78 , 4 , 218 , 32 }; // 定义偏移量
byte [] key = { 55 , 103 , 246 , 79 , 36 , 99 , 167 , 3 }; // 定义密钥
// 实例DES加密类
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
mobjCryptoService.Key = iv;
mobjCryptoService.IV = key;
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
// 实例MemoryStream流加密密文件
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0 , bytIn.Length);
cs.FlushFinalBlock();
return System.Convert.ToBase64String(ms.ToArray());
}
#endregion
#region MD5解密
/// <summary>
/// MD5解密
/// </summary>
/// <param name="Source"> 需要解密的字符串 </param>
/// <returns> MD5解密后的字符串 </returns>
public static string Md5Decrypt( string Source)
{
// 将解密字符串转换成字节数组
byte [] bytIn = System.Convert.FromBase64String(Source);
// 给出解密的密钥和偏移量,密钥和偏移量必须与加密时的密钥和偏移量相同
byte [] iv = { 102 , 16 , 93 , 156 , 78 , 4 , 218 , 32 }; // 定义偏移量
byte [] key = { 55 , 103 , 246 , 79 , 36 , 99 , 167 , 3 }; // 定义密钥
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
mobjCryptoService.Key = iv;
mobjCryptoService.IV = key;
// 实例流进行解密
System.IO.MemoryStream ms = new System.IO.MemoryStream(bytIn, 0 , bytIn.Length);
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader strd = new StreamReader(cs, Encoding.Default);
return strd.ReadToEnd();
}
#endregion
#region HTML 转义字符
/// <summary>
/// 编码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Encode( string str)
{
str = str.Replace( " & " , " & " );
str = str.Replace( " ' " , " '' " );
str = str.Replace( " \ "" , " & quot; " );
str = str.Replace( " " , " " );
str = str.Replace( " < " , " < " );
str = str.Replace( " > " , " > " );
str = str.Replace( " \n " , " <br> " );
return str;
}
/// <summary>
/// 解码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Decode( string str)
{
str = str.Replace( " & " , " & " );
str = str.Replace( " '' " , " ' " );
str = str.Replace( " " " , " \ "" );
str = str.Replace( " " , " " );
str = str.Replace( " > " , " > " );
str = str.Replace( " < " , " < " );
str = str.Replace( " \n " , " <br> " );
return str;
}
#endregion
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security.Cryptography;
using System.Text;
using System.IO;
/// <summary>
/// Common 的摘要说明
/// </summary>
public class Common
{
public Common()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 获取IP地址
/// </summary>
/// <returns></returns>
public static string GetAddIP()
{
string result = HttpContext.Current.Request.ServerVariables[ " HTTP_X_FORWARDED_FOR " ];
if ( null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables[ " REMOTE_ADDR " ];
}
if ( null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
#region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="strSource"> 需要加密的字符串 </param>
/// <returns> MD5加密后的字符串 </returns>
public static string Md5Encrypt( string strSource)
{
// 把字符串放到byte数组中
byte [] bytIn = System.Text.Encoding.Default.GetBytes(strSource);
// 建立加密对象的密钥和偏移量
byte [] iv = { 102 , 16 , 93 , 156 , 78 , 4 , 218 , 32 }; // 定义偏移量
byte [] key = { 55 , 103 , 246 , 79 , 36 , 99 , 167 , 3 }; // 定义密钥
// 实例DES加密类
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
mobjCryptoService.Key = iv;
mobjCryptoService.IV = key;
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
// 实例MemoryStream流加密密文件
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0 , bytIn.Length);
cs.FlushFinalBlock();
return System.Convert.ToBase64String(ms.ToArray());
}
#endregion
#region MD5解密
/// <summary>
/// MD5解密
/// </summary>
/// <param name="Source"> 需要解密的字符串 </param>
/// <returns> MD5解密后的字符串 </returns>
public static string Md5Decrypt( string Source)
{
// 将解密字符串转换成字节数组
byte [] bytIn = System.Convert.FromBase64String(Source);
// 给出解密的密钥和偏移量,密钥和偏移量必须与加密时的密钥和偏移量相同
byte [] iv = { 102 , 16 , 93 , 156 , 78 , 4 , 218 , 32 }; // 定义偏移量
byte [] key = { 55 , 103 , 246 , 79 , 36 , 99 , 167 , 3 }; // 定义密钥
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
mobjCryptoService.Key = iv;
mobjCryptoService.IV = key;
// 实例流进行解密
System.IO.MemoryStream ms = new System.IO.MemoryStream(bytIn, 0 , bytIn.Length);
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader strd = new StreamReader(cs, Encoding.Default);
return strd.ReadToEnd();
}
#endregion
#region HTML 转义字符
/// <summary>
/// 编码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Encode( string str)
{
str = str.Replace( " & " , " & " );
str = str.Replace( " ' " , " '' " );
str = str.Replace( " \ "" , " & quot; " );
str = str.Replace( " " , " " );
str = str.Replace( " < " , " < " );
str = str.Replace( " > " , " > " );
str = str.Replace( " \n " , " <br> " );
return str;
}
/// <summary>
/// 解码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Decode( string str)
{
str = str.Replace( " & " , " & " );
str = str.Replace( " '' " , " ' " );
str = str.Replace( " " " , " \ "" );
str = str.Replace( " " , " " );
str = str.Replace( " > " , " > " );
str = str.Replace( " < " , " < " );
str = str.Replace( " \n " , " <br> " );
return str;
}
#endregion
}