字符串加密解密函数

Base64加密 #regionBase64加密
[WebMethod]
publicstringBase64Encrypt(stringpToEncrypt)
{
returnConvert.ToBase64String(System.Text.Encoding.Default.GetBytes(pToEncrypt));
}

#endregion


Base64编码 #regionBase64编码
[WebMethod]
publicstringBase64Decrypt(stringpToDeCrypt)
{
returnSystem.Text.Encoding.Default.GetString(Convert.FromBase64String(pToDeCrypt));
}

#endregion


MD5加密 #regionMD5加密
[WebMethod]
publicstringEncrypt_MD5_Standard(stringstrpwd)
{
MD5MD5
=newMD5CryptoServiceProvider();
byte[]datSource=System.Text.Encoding.Default.GetBytes(strpwd);
byte[]newSource=MD5.ComputeHash(datSource);
stringbyte2String=null;
for(inti=0;i<newSource.Length;i++)
{
stringthisByte=newSource[i].ToString("x");
if(thisByte.Length==1)thisByte="0"+thisByte;
byte2String
+=thisByte;
}

returnbyte2String;
}

#endregion


Passport加密函数 #regionPassport加密函数
[WebMethod]
publicstringPassport_Encrypt(stringtxt,stringkey)
{

//使用随机数发生器产生0~32000的值并MD5()
stringencrypt_key=Encrypt_MD5_Standard(GetRandomNumber(0,32000).ToString());
//变量初始化
intctr=0;
stringtmp="";

//for循环,$i为从0开始,到小于$txt字串长度的整数
for(inti=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编码结果
returnBase64Encrypt(Passport_Key(tmp,key));

}

#endregion


Passport解密函数 #regionPassport解密函数
[WebMethod]
publicstringPassport_Decrypt(stringtxt,stringkey)
{
//$txt的结果为加密后的字串经过base64解码,然后与私有密匙一起,
//经过passport_key()函数处理后的返回值
txt=Passport_Key(Base64Decrypt(txt),key);

//变量初始化
stringtmp="";

//for循环,$i为从0开始,到小于$txt字串长度的整数
for(inti=0;i<txt.Length;i++)
{
//$tmp字串在末尾增加一位,其内容为$txt的第$i位,
//与$txt的第$i+1位取异或。然后$i=$i+1
tmp+=((char)(txt[i]^txt[++i])).ToString();
}



//返回$tmp的值作为结果
returntmp;

}

#endregion


Passport密匙处理函数 #regionPassport密匙处理函数
[WebMethod]
publicstringPassport_Key(stringtxt,stringencrypt_key)
{
//将$encrypt_key赋为$encrypt_key经md5()后的值
encrypt_key=Encrypt_MD5_Standard(encrypt_key);
//变量初始化
intctr=0;
stringtmp="";

//for循环,$i为从0开始,到小于$txt字串长度的整数
for(inti=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();
}

returntmp;
}

#endregion


EG:
string a = "fanrongsheng";需要加密的字符串
string key = "loveaspnet";私有密码
//strPvt加密后的字符串
string strPvt = Passport_Encrypt(a,key);
//解密字符串
string strSour = Passport_Decrypt(strPvt,key);
strSour=a
欢迎大家评论,指点。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值