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 } }
C#常用加密方法
最新推荐文章于 2024-08-11 00:37:13 发布