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;
/// <summary>
/// jiami 的摘要说明
/// </summary>
public class jiami
{
public jiami()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static byte[] getbyte(string str)
{
return Encoding.Default.GetBytes(str);
}
///DES加密解密 加密byte数组
/// <param name="strkey"> 密钥不限定位数</param>
public static string DESEncryptbyte(byte[] plainText, string strkey)
{
string encrypted = null;
byte[] key = getbyte(strkey);
try
{
byte[] inputBytes = plainText;
byte[] pwdhash = null;
MD5CryptoServiceProvider hashmd5;
hashmd5 = new MD5CryptoServiceProvider();
pwdhash = hashmd5.ComputeHash(key);
hashmd5 = null;
TripleDESCryptoServiceProvider tdesProvider = new TripleDESCryptoServiceProvider();
tdesProvider.Key = pwdhash;
tdesProvider.Mode = CipherMode.ECB;
encrypted = Convert.ToBase64String(tdesProvider.CreateEncryptor().TransformFinalBlock(inputBytes, 0, inputBytes.Length));
}
catch (Exception e)
{
string str = e.Message;
throw;
}
return encrypted;
}
//加密字符串
public static string DESEncrypt(String plainText, string strkey)
{
if (plainText.Trim() == "") return "";
string encrypted = null;
byte[] key = getbyte(strkey);
try
{
byte[] inputBytes = ASCIIEncoding.ASCII.GetBytes(plainText);
byte[] pwdhash = null;
MD5CryptoServiceProvider hashmd5;
hashmd5 = new MD5CryptoServiceProvider();
pwdhash = hashmd5.ComputeHash(key);
hashmd5 = null;
TripleDESCryptoServiceProvider tdesProvider = new TripleDESCryptoServiceProvider();
tdesProvider.Key = pwdhash;
tdesProvider.Mode = CipherMode.ECB;
encrypted = Convert.ToBase64String(tdesProvider.CreateEncryptor().TransformFinalBlock(inputBytes, 0, inputBytes.Length));
}
catch (Exception e)
{
string str = e.Message;
throw;
}
return encrypted;
}
/// <summary>
/// DES解密
/// </summary>
/// <param name="encryptedString"></param>
/// <param name="strkey">密钥</param>
/// <returns></returns>
public static string DESDecrypt(string encryptedString, string strkey)
{
if (encryptedString.Trim() == "") return "";
string decyprted = null;
byte[] inputBytes = null;
byte[] key = getbyte(strkey);
try
{
inputBytes = Convert.FromBase64String(encryptedString);
byte[] pwdhash = null;
MD5CryptoServiceProvider hashmd5;
hashmd5 = new MD5CryptoServiceProvider();
pwdhash = hashmd5.ComputeHash(key);
hashmd5 = null;
TripleDESCryptoServiceProvider tdesProvider = new TripleDESCryptoServiceProvider();
tdesProvider.Key = pwdhash;
tdesProvider.Mode = CipherMode.ECB;
decyprted = ASCIIEncoding.ASCII.GetString(tdesProvider.CreateDecryptor().TransformFinalBlock(inputBytes, 0, inputBytes.Length));
}
catch (Exception e)
{
string str = e.Message;
throw;
}
return decyprted;
}
//替换非法的危险字符
public string ReplaceDangerCode(string Temp)
{
Temp = Temp.Replace("'", "");
Temp = Temp.Replace("/"", "");
Temp = Temp.Replace("or", "");
Temp = Temp.Replace("&", "");
Temp = Temp.Replace("*", "");
Temp = Temp.Replace("select ", "");
Temp = Temp.Replace("insert ", "");
Temp = Temp.Replace("delete ", "");
Temp = Temp.Replace("count(", "");
Temp = Temp.Replace("drop table ", "");
Temp = Temp.Replace("update ", "");
Temp = Temp.Replace("truncate ", "");
Temp = Temp.Replace("asc(", "");
Temp = Temp.Replace("mid(", "");
Temp = Temp.Replace("char(", "");
Temp = Temp.Replace("xp_cmdshell", "");
Temp = Temp.Replace("exec master", "");
Temp = Temp.Replace("net localgroup administrators", "");
Temp = Temp.Replace(" and ", "");
Temp = Temp.Replace("net user", "");
Temp = Temp.Replace(" or ", "");
return Temp;
}
/// <summary>
/// shal加密
/// </summary>
/// <param name="bt"></param>
/// <returns></returns>
public static string SHALEncryptbyte(byte[] bt)
{
SHA1 s = new SHA1CryptoServiceProvider();
return BitConverter.ToString(s.ComputeHash(bt));
}
public static string SHALEncrypstr(string str)
{
string reStr;
byte[] bts = ASCIIEncoding.ASCII.GetBytes(str);
SHA1 s = new SHA1CryptoServiceProvider();
reStr = BitConverter.ToString(s.ComputeHash(bts));
return reStr;
}
//MD5加密
public static string MD5_Encrypstr(string str)
{
string reStr;
byte[] bts = ASCIIEncoding.ASCII.GetBytes(str);
MD5CryptoServiceProvider MD5_OBJ = new MD5CryptoServiceProvider();
reStr = BitConverter.ToString(MD5_OBJ.ComputeHash(bts));
return reStr;
}
}