C#常用加密方法

usingSystem;
usingSystem.IO;
usingSystem.Security.Cryptography;
usingSystem.Text;
 
///<summary>
///Encrypt的摘要说明
///</summary>
publicstaticclassEncrypt
{
#region解密由AES加密的字符串
///<summary>
///解密由AES加密的字符串
///</summary>
///<paramname="source">加密字符串</param>
///<paramname="key">加密密钥</param>
///<returns>解密后的字符串</returns>
publicstaticstringDencrypt_AES(stringsource,stringkey)
{
try
{
Rijndaelrijndael=Rijndael.Create();
rijndael.Key=Encoding.Default.GetBytes(key);
rijndael.IV=Encoding.Default.GetBytes(key.Substring(0,0x10));
byte[]buffer=Convert.FromBase64String(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,rijndael.CreateDecryptor(),CryptoStreamMode.Write);
stream2.Write(buffer,0,buffer.Length);
stream2.FlushFinalBlock();
returnEncoding.Default.GetString(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region解密由DES加密的字符串
///<summary>
///解密由DES加密的字符串
///</summary>
///<paramname="source">加密的字符串</param>
///<paramname="key">加密的密钥</param>
///<returns>解密后的字符串</returns>
publicstaticstringDencrypt_DES(stringsource,stringkey)
{
try
{
DESCryptoServiceProviderprovider2=newDESCryptoServiceProvider
{
Key=Encoding.Default.GetBytes(key),
IV=Encoding.Default.GetBytes(key)
};
DESCryptoServiceProviderprovider=provider2;
byte[]buffer=Convert.FromBase64String(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,provider.CreateDecryptor(),CryptoStreamMode.Write);
stream2.Write(buffer,0,buffer.Length);
stream2.FlushFinalBlock();
returnEncoding.Default.GetString(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region解密由RC2加密的字符串
///<summary>
///解密由RC2加密的字符串
///</summary>
///<paramname="source">加密的字符串</param>
///<paramname="key">加密的密钥</param>
///<returns>解密后的字符串</returns>
publicstaticstringDEncrypt_RC2(stringsource,stringkey)
{
try
{
RC2CryptoServiceProviderprovider2=newRC2CryptoServiceProvider
{
Key=Encoding.Default.GetBytes(key),
IV=Encoding.Default.GetBytes(key)
};
RC2CryptoServiceProviderprovider=provider2;
byte[]buffer=Convert.FromBase64String(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,provider.CreateDecryptor(),CryptoStreamMode.Write);
stream2.Write(buffer,0,buffer.Length);
stream2.FlushFinalBlock();
returnEncoding.Default.GetString(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region解密由TripleDES加密的字符串
///<summary>
///解密由TripleDES加密的字符串
///</summary>
///<paramname="source">加密的字符串</param>
///<paramname="key">加密的密钥</param>
///<returns>解密后的字符串</returns>
publicstaticstringDencrypt_TripleDES(stringsource,stringkey)
{
try
{
TripleDESCryptoServiceProviderprovider2=newTripleDESCryptoServiceProvider
{
Key=Encoding.Default.GetBytes(key),
IV=Encoding.Default.GetBytes(key.Substring(0,8))
};
TripleDESCryptoServiceProviderprovider=provider2;
byte[]buffer=Convert.FromBase64String(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,provider.CreateDecryptor(),CryptoStreamMode.Write);
stream2.Write(buffer,0,buffer.Length);
stream2.FlushFinalBlock();
returnEncoding.Default.GetString(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region使用AES方式进行加密
///<summary>
///使用AES方式进行加密
///</summary>
///<paramname="source">需要加密的字符串</param>
///<paramname="key">加密用的密钥</param>
///<returns>加密后的字符串</returns>
publicstaticstringEncrypt_AES(stringsource,stringkey)
{
try
{
Rijndaelrijndael=Rijndael.Create();
rijndael.Key=Encoding.Default.GetBytes(key);
rijndael.IV=Encoding.Default.GetBytes(key.Substring(0,0x10));
byte[]bytes=Encoding.Default.GetBytes(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,rijndael.CreateEncryptor(),CryptoStreamMode.Write);
stream2.Write(bytes,0,bytes.Length);
stream2.FlushFinalBlock();
returnConvert.ToBase64String(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region使用DES方式进行加密
///<summary>
///使用DES方式进行加密
///</summary>
///<paramname="source">需要加密的字符串</param>
///<paramname="key">加密用的密钥</param>
///<returns>加密后的字符串</returns>
publicstaticstringEncrypt_DES(stringsource,stringkey)
{
try
{
DESCryptoServiceProviderprovider2=newDESCryptoServiceProvider
{
Key=Encoding.Default.GetBytes(key),
IV=Encoding.Default.GetBytes(key)
};
DESCryptoServiceProviderprovider=provider2;
byte[]bytes=Encoding.Default.GetBytes(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,provider.CreateEncryptor(),CryptoStreamMode.Write);
stream2.Write(bytes,0,bytes.Length);
stream2.FlushFinalBlock();
returnConvert.ToBase64String(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region使用MD5方式进行加密
///<summary>
///使用MD5方式进行加密
///</summary>
///<paramname="source">需要加密的字符串</param>
///<paramname="key">加密用的密钥</param>
///<returns>加密后的字符串</returns>
publicstaticstringEncrypt_MD5(stringsource)
{
stringstr="";
MD5CryptoServiceProviderprovider=newMD5CryptoServiceProvider();
byte[]bytes=Encoding.Default.GetBytes(source);
byte[]buffer2=provider.ComputeHash(bytes);
foreach(bytenuminbuffer2)
{
str=str+num.ToString("X").PadLeft(2,'0');
}
returnstr;
}
#endregion
 
#region使用RC2方式进行加密
///<summary>
///使用RC2方式进行加密
///</summary>
///<paramname="source">需要加密的字符串</param>
///<paramname="key">加密用的密钥</param>
///<returns>加密后的字符串</returns>
publicstaticstringEncrypt_RC2(stringsource,stringkey)
{
try
{
RC2CryptoServiceProviderprovider2=newRC2CryptoServiceProvider
{
Key=Encoding.Default.GetBytes(key),
IV=Encoding.Default.GetBytes(key)
};
RC2CryptoServiceProviderprovider=provider2;
byte[]bytes=Encoding.Default.GetBytes(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,provider.CreateEncryptor(),CryptoStreamMode.Write);
stream2.Write(bytes,0,bytes.Length);
stream2.FlushFinalBlock();
returnConvert.ToBase64String(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region使用TripleDES方式进行加密
///<summary>
///使用TripleDES方式进行加密
///</summary>
///<paramname="source">需要加密的字符串</param>
///<paramname="key">加密用的密钥</param>
///<returns>加密后的字符串</returns>
publicstaticstringEncrypt_TripleDES(stringsource,stringkey)
{
try
{
TripleDESCryptoServiceProviderprovider2=newTripleDESCryptoServiceProvider
{
Key=Encoding.Default.GetBytes(key),
IV=Encoding.Default.GetBytes(key.Substring(0,8))
};
TripleDESCryptoServiceProviderprovider=provider2;
byte[]bytes=Encoding.Default.GetBytes(source);
MemoryStreamstream=newMemoryStream();
CryptoStreamstream2=newCryptoStream(stream,provider.CreateEncryptor(),CryptoStreamMode.Write);
stream2.Write(bytes,0,bytes.Length);
stream2.FlushFinalBlock();
returnConvert.ToBase64String(stream.ToArray());
}
catch
{
returnnull;
}
}
#endregion
 
#region获取加密的密钥
///<summary>
///获取加密的密钥
///</summary>
///<paramname="EncryptType">加密方式</param>
///<returns>密钥</returns>
publicstaticstringGetKey(EncryptTypeencryptType)
{
switch(encryptType)
{
caseEncryptType.AES:
return"1zx2fqw3eas4dtg8hui9opl6dfh5aok0";
 
caseEncryptType.DES:
return"zxc52mxb";
 
caseEncryptType.TDES:
return"zxc52mxbqwdftghu24dfhji0";
 
caseEncryptType.RC2:
return"qwedfgbd";
}
return"";
}
#endregion
 
publicenumEncryptType:byte
{
AES,
DES,
TDES,
RC2
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值