您的位置:首页 > 编程语言 > C#

C#_加密解密

2015-09-14 17:59 801 查看
一、MD5加密解密

1、加密

publicstaticstringToMd5(stringclearString)

publicclassBase64
publicclassAES


{


///<summary>


///获取密钥


///</summary>


privatestaticstringKey


{


get{return@")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M";}


}




///<summary>


///获取向量


///</summary>


privatestaticstringIV


{


get{return@"L+/~f4,Ir)b$=pkf";}


}




///<summary>


///AES加密


///</summary>


///<paramname="plainStr">明文字符串</param>


///<returns>密文</returns>


publicstaticstringAESEncrypt(stringplainStr)


{


byte[]bKey=Encoding.UTF8.GetBytes(Key);


byte[]bIV=Encoding.UTF8.GetBytes(IV);


byte[]byteArray=Encoding.UTF8.GetBytes(plainStr);




stringencrypt=null;


Rijndaelaes=Rijndael.Create();


try


{


using(MemoryStreammStream=newMemoryStream())


{


using(CryptoStreamcStream=newCryptoStream(mStream,aes.CreateEncryptor(bKey,bIV),CryptoStreamMode.Write))


{


cStream.Write(byteArray,0,byteArray.Length);


cStream.FlushFinalBlock();


encrypt=Convert.ToBase64String(mStream.ToArray());


}


}


}


catch{}


aes.Clear();




returnencrypt;


}




///<summary>


///AES加密


///</summary>


///<paramname="plainStr">明文字符串</param>


///<paramname="returnNull">加密失败时是否返回null,false返回String.Empty</param>


///<returns>密文</returns>


publicstaticstringAESEncrypt(stringplainStr,boolreturnNull)


{


stringencrypt=AESEncrypt(plainStr);


returnreturnNull?encrypt:(encrypt==null?String.Empty:encrypt);


}




///<summary>


///AES解密


///</summary>


///<paramname="encryptStr">密文字符串</param>


///<returns>明文</returns>


publicstaticstringAESDecrypt(stringencryptStr)


{


byte[]bKey=Encoding.UTF8.GetBytes(Key);


byte[]bIV=Encoding.UTF8.GetBytes(IV);


byte[]byteArray=Convert.FromBase64String(encryptStr);




stringdecrypt=null;


Rijndaelaes=Rijndael.Create();


try


{


using(MemoryStreammStream=newMemoryStream())


{


using(CryptoStreamcStream=newCryptoStream(mStream,aes.CreateDecryptor(bKey,bIV),CryptoStreamMode.Write))


{


cStream.Write(byteArray,0,byteArray.Length);


cStream.FlushFinalBlock();


decrypt=Encoding.UTF8.GetString(mStream.ToArray());


}


}


}


catch{}


aes.Clear();




returndecrypt;


}




///<summary>


///AES解密


///</summary>


///<paramname="encryptStr">密文字符串</param>


///<paramname="returnNull">解密失败时是否返回null,false返回String.Empty</param>


///<returns>明文</returns>


publicstaticstringAESDecrypt(stringencryptStr,boolreturnNull)


{


stringdecrypt=AESDecrypt(encryptStr);


returnreturnNull?decrypt:(decrypt==null?String.Empty:decrypt);


}


}[/code]




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: