C#_加密解密
2015-09-14 17:59
801 查看
一、MD5加密解密
1、加密
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]
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]
相关文章推荐
- C#_Stream
- C#_发送手机短信
- C#_发邮件详解
- C#_发送邮件
- C#_添加xml文件
- C#_收邮件
- C#_正则表达式
- C#_IO操作
- c# yield
- C#递归批量清空TEXTBOX
- 第一次写博客,c#初学者,数组
- 关于c#动态加载程序集的一些注意事项
- 【转】C# Serializable对象序列化的作用
- Emgu入门引导——加载并显示图像(C#风格)
- C# 下实现把Array复制到ArrayList中的四种方法
- C# 将RichTextBox中内容的文档以二进制形式存
- C#异常处理的几个原则
- C# 对象销毁和垃圾回收
- C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
- C# Winform MDI窗体,父窗体控件覆盖子窗体的解决办法