Base64加密#region Base64加密
[WebMethod]
public string Base64Encrypt(string pToEncrypt)
{
return Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(pToEncrypt));
}
#endregion
Base64编码#region Base64编码
[WebMethod]
public string Base64Decrypt(string pToDeCrypt)
{
return System.Text.Encoding.Default.GetString(Convert.FromBase64String(pToDeCrypt));
}
#endregion
MD5加密#region MD5加密
[WebMethod]
public string Encrypt_MD5_Standard(string strpwd)
{
MD5 MD5=new MD5CryptoServiceProvider();
byte[] datSource = System.Text.Encoding.Default.GetBytes(strpwd);
byte[] newSource = MD5.ComputeHash(datSource);
string byte2String = null;
for (int i=0; i<newSource.Length; i++)
{
string thisByte=newSource[i].ToString("x");
if(thisByte.Length==1) thisByte="0"+thisByte;
byte2String += thisByte;
}
return byte2String;
}
#endregion
Passport 加密函数#region Passport 加密函数
[WebMethod]
public string Passport_Encrypt(string txt, string key)
{
// 使用随机数发生器产生 0~32000 的值并 MD5()
string encrypt_key = Encrypt_MD5_Standard(GetRandomNumber(0, 32000).ToString());
// 变量初始化
int ctr = 0;
string tmp = "";
// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for (int i = 0; i < txt.Length; i++)
{
// 如果 $ctr = $encrypt_key 的长度,则 $ctr 清零
ctr = ctr == encrypt_key.Length ? 0 : ctr;
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $encrypt_key 的第 $ctr + 1 位取异或。然后 $ctr = $ctr + 1
tmp += encrypt_key[ctr].ToString() + ((char)(txt[i] ^ encrypt_key[ctr++])).ToString();
}
// 返回结果,结果为 passport_key() 函数返回值的 base65 编码结果
return Base64Encrypt(Passport_Key(tmp, key));
}
#endregion
Passport 解密函数#region Passport 解密函数
[WebMethod]
public string Passport_Decrypt(string txt, string key)
{
// $txt 的结果为加密后的字串经过 base64 解码,然后与私有密匙一起,
// 经过 passport_key() 函数处理后的返回值
txt = Passport_Key(Base64Decrypt(txt), key);
// 变量初始化
string tmp = "";
// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for (int i = 0; i < txt.Length; i++)
{
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $txt 的第 $i + 1 位取异或。然后 $i = $i + 1
tmp += ((char)(txt[i] ^ txt[++i])).ToString();
}
// 返回 $tmp 的值作为结果
return tmp;
}
#endregion
Passport 密匙处理函数#region Passport 密匙处理函数
[WebMethod]
public string Passport_Key(string txt, string encrypt_key)
{
// 将 $encrypt_key 赋为 $encrypt_key 经 md5() 后的值
encrypt_key = Encrypt_MD5_Standard(encrypt_key);
// 变量初始化
int ctr = 0;
string tmp = "";
// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for (int i = 0; i < txt.Length; i++)
{
// 如果 $ctr = $encrypt_key 的长度,则 $ctr 清零
ctr = ctr == encrypt_key.Length ? 0 : ctr;
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $encrypt_key 的第 $ctr + 1 位取异或。然后 $ctr = $ctr + 1
tmp += ((char)(txt[i] ^ encrypt_key[ctr++])).ToString();
}
return tmp;
}
#endregion
[WebMethod]
public string Base64Encrypt(string pToEncrypt)
{
return Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(pToEncrypt));
}
#endregion
Base64编码#region Base64编码
[WebMethod]
public string Base64Decrypt(string pToDeCrypt)
{
return System.Text.Encoding.Default.GetString(Convert.FromBase64String(pToDeCrypt));
}
#endregion
MD5加密#region MD5加密
[WebMethod]
public string Encrypt_MD5_Standard(string strpwd)
{
MD5 MD5=new MD5CryptoServiceProvider();
byte[] datSource = System.Text.Encoding.Default.GetBytes(strpwd);
byte[] newSource = MD5.ComputeHash(datSource);
string byte2String = null;
for (int i=0; i<newSource.Length; i++)
{
string thisByte=newSource[i].ToString("x");
if(thisByte.Length==1) thisByte="0"+thisByte;
byte2String += thisByte;
}
return byte2String;
}
#endregion
Passport 加密函数#region Passport 加密函数
[WebMethod]
public string Passport_Encrypt(string txt, string key)
{
// 使用随机数发生器产生 0~32000 的值并 MD5()
string encrypt_key = Encrypt_MD5_Standard(GetRandomNumber(0, 32000).ToString());
// 变量初始化
int ctr = 0;
string tmp = "";
// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for (int i = 0; i < txt.Length; i++)
{
// 如果 $ctr = $encrypt_key 的长度,则 $ctr 清零
ctr = ctr == encrypt_key.Length ? 0 : ctr;
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $encrypt_key 的第 $ctr + 1 位取异或。然后 $ctr = $ctr + 1
tmp += encrypt_key[ctr].ToString() + ((char)(txt[i] ^ encrypt_key[ctr++])).ToString();
}
// 返回结果,结果为 passport_key() 函数返回值的 base65 编码结果
return Base64Encrypt(Passport_Key(tmp, key));
}
#endregion
Passport 解密函数#region Passport 解密函数
[WebMethod]
public string Passport_Decrypt(string txt, string key)
{
// $txt 的结果为加密后的字串经过 base64 解码,然后与私有密匙一起,
// 经过 passport_key() 函数处理后的返回值
txt = Passport_Key(Base64Decrypt(txt), key);
// 变量初始化
string tmp = "";
// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for (int i = 0; i < txt.Length; i++)
{
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $txt 的第 $i + 1 位取异或。然后 $i = $i + 1
tmp += ((char)(txt[i] ^ txt[++i])).ToString();
}
// 返回 $tmp 的值作为结果
return tmp;
}
#endregion
Passport 密匙处理函数#region Passport 密匙处理函数
[WebMethod]
public string Passport_Key(string txt, string encrypt_key)
{
// 将 $encrypt_key 赋为 $encrypt_key 经 md5() 后的值
encrypt_key = Encrypt_MD5_Standard(encrypt_key);
// 变量初始化
int ctr = 0;
string tmp = "";
// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for (int i = 0; i < txt.Length; i++)
{
// 如果 $ctr = $encrypt_key 的长度,则 $ctr 清零
ctr = ctr == encrypt_key.Length ? 0 : ctr;
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $encrypt_key 的第 $ctr + 1 位取异或。然后 $ctr = $ctr + 1
tmp += ((char)(txt[i] ^ encrypt_key[ctr++])).ToString();
}
return tmp;
}
#endregion
EG:
string a = "fanrongsheng";需要加密的字符串
string key = "loveaspnet";私有密码
//strPvt加密后的字符串
string strPvt = Passport_Encrypt(a,key);
//解密字符串
string strSour = Passport_Decrypt(strPvt,key);
strSour=a
欢迎大家评论,指点。。。