一般有两种加密算法:1.像md5,SHA1,等hash算法,是不可逆的。一般数据库存的用户名和密码就用这个。
本文所提到的XXTEA算法,是可逆的,有个key可以加密。
安全方面的东西还蛮多的,说到key,还有什么publickey,privatekey。
可逆加密算法的需求还是比较广的,像加密游戏存档(发现还是无法防止内存修改),加密日志,加密图片等。
方法1.(不可逆加密方法)
publicstringEncryptPassword(stringPasswordString,stringPasswordFormat)
{
stringencryptPassword=null;
if(PasswordFormat="SHA1"){
encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString
,"SHA1");
}
elseif(PasswordFormat="MD5")
returnencryptPassword;
}
方法2.(可逆加密)
publicinterfaceIBindesh
{
stringencode(stringstr);
stringdecode(stringstr);
}
publicclassEncryptionDecryption:IBindesh
{
publicstringencode(stringstr)
{
stringhtext="";
for(inti=0;i
///与ASP兼容的MD5加密算法
///
MD5md5=newMD5CryptoServiceProvider();
byte[]t=md5.ComputeHash(Encoding.GetEncoding(_input_charset)。GetBytes(s));
StringBuildersb=newStringBuilder(32);
for(inti=0;i
///DES加密字符串
///
///待加密的字符串
///加密密钥,要求为8位
///加密成功返回加密后的字符串,失败返回源串
publicstaticstringEncryptDES(stringencryptString,stringencryptKey)
{
try
{
byte[]rgbKey=Encoding.UTF8.GetBytes(encryptKey.Substring(0,8));
byte[]rgbIV=Keys;
byte[]inputByteArray=Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProviderdCSP=newDESCryptoServiceProvider();
MemoryStreammStream=newMemoryStream();
CryptoStreamcStream=newCryptoStream(mStream,dCSP.CreateEncryptor(rgbKey,
rgbIV),CryptoStreamMode.Write);
cStream.Write(inputByteArray,0,inputByteArray.Length);
cStream.FlushFinalBlock();
returnConvert.ToBase64String(mStream.ToArray());
}
catch
{
returnencryptString;
}
}
/**//**//**////
///DES解密字符串
///
///待解密的字符串
///解密密钥,要求为8位,和加密密钥相同
///解密成功返回解密后的字符串,失败返源串
publicstaticstringDecryptDES(stringdecryptString,stringdecryptKey)
{
try
{
byte[]rgbKey=Encoding.UTF8.GetBytes(decryptKey);
byte[]rgbIV=Keys;
byte[]inputByteArray=Convert.FromBase64String(decryptString);
DESCryptoServiceProviderDCSP=newDESCryptoServiceProvider();
MemoryStreammStream=newMemoryStream();
CryptoStreamcStream=newCryptoStream(mStream,DCSP.CreateDecryptor(rgbKey,
rgbIV),CryptoStreamMode.Write);
cStream.Write(inputByteArray,0,inputByteArray.Length);
cStream.FlushFinalBlock();
returnEncoding.UTF8.GetString(mStream.ToArray());
}
catch
{
returndecryptString;
}
}
}}(本文由武汉智融科技转载)
本文链接:http://www.zrongsoft.com/a/jiamijishu/yingpanjiami/2015/0514/340.html