一般有兩種加密算法: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.bj-meiling.com/a/jiamijishu/yingpanjiami/2015/0514/340.html