TripleDES加密、解密算法
2008-06-26 11:58
323 查看
转:http://blog.csdn.net/fangq/archive/2008/06/25/2586306.aspx
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Security.Cryptography;
usingSystem.IO;
namespaceWindowsFormsApplication1
{
#regionTripleDES算法
publicclassClassTripleDES
{
publicClassTripleDES()
{
}
//加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。
publicstaticstringEncrypt(stringpass)
{
try
{
byte[]bt=(newSystem.Text.UnicodeEncoding()).GetBytes(pass);
PasswordDeriveBytespdb=newPasswordDeriveBytes(pass,null);
byte[]key=pdb.GetBytes(24);
byte[]iv=pdb.GetBytes(8);
MemoryStreamms=newMemoryStream();
TripleDESCryptoServiceProvidertdesc=newTripleDESCryptoServiceProvider();
CryptoStreamcs=newCryptoStream(ms,tdesc.CreateEncryptor(key,iv),CryptoStreamMode.Write);
cs.Write(bt,0,bt.Length);
cs.FlushFinalBlock();
returnConvert.ToBase64String(ms.ToArray());
}
catch(Exceptionex)
{
throwex;
}
}
//解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。
publicstaticstringDecrypt(stringstr,stringpass)
{
try
{
byte[]bt=Convert.FromBase64String(str);
PasswordDeriveBytespdb=newPasswordDeriveBytes(pass,null);
byte[]key=pdb.GetBytes(24);
byte[]iv=pdb.GetBytes(8);
MemoryStreamms=newMemoryStream();
TripleDESCryptoServiceProvidertdesc=newTripleDESCryptoServiceProvider();
CryptoStreamcs=newCryptoStream(ms,tdesc.CreateDecryptor(key,iv),CryptoStreamMode.Write);
cs.Write(bt,0,bt.Length);
cs.FlushFinalBlock();
return(newSystem.Text.UnicodeEncoding()).GetString(ms.ToArray());
}
catch(Exceptionex)
{
throwex;
}
}
//使用:
//stringstr=Encrypt("bbb");
//Console.WriteLine(Decrypt(str,"bbb"));
//加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。
publicstaticstringEncryptWithKey(stringpass,stringp_key)
{
try
{
byte[]bt=(newSystem.Text.UnicodeEncoding()).GetBytes(pass);
PasswordDeriveBytespdb=newPasswordDeriveBytes(p_key,null);
byte[]key=pdb.GetBytes(24);
byte[]iv=pdb.GetBytes(8);
MemoryStreamms=newMemoryStream();
TripleDESCryptoServiceProvidertdesc=newTripleDESCryptoServiceProvider();
CryptoStreamcs=newCryptoStream(ms,tdesc.CreateEncryptor(key,iv),CryptoStreamMode.Write);
cs.Write(bt,0,bt.Length);
cs.FlushFinalBlock();
returnConvert.ToBase64String(ms.ToArray());
}
catch(Exceptionex)
{
throwex;
}
}
//解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。
publicstaticstringDecryptWithKey(stringstr,stringp_key)
{
try
{
byte[]bt=Convert.FromBase64String(str);
PasswordDeriveBytespdb=newPasswordDeriveBytes(p_key,null);
byte[]key=pdb.GetBytes(24);
byte[]iv=pdb.GetBytes(8);
MemoryStreamms=newMemoryStream();
TripleDESCryptoServiceProvidertdesc=newTripleDESCryptoServiceProvider();
CryptoStreamcs=newCryptoStream(ms,tdesc.CreateDecryptor(key,iv),CryptoStreamMode.Write);
cs.Write(bt,0,bt.Length);
cs.FlushFinalBlock();
return(newSystem.Text.UnicodeEncoding()).GetString(ms.ToArray());
}
catch(Exceptionex)
{
throwex;
}
}
}
#endregion
}
相关文章推荐
- TripleDES加密、解密算法
- asp.net TripleDES加密、解密算法
- TripleDES加密、解密算法
- asp.net TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- C++ base64加密解密算法
- Java RSA 加密解密算法 入门
- 常见的加密和解密算法—DES
- 加密,解密算法
- N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列。设计加密解密算法,且要求K<=15*N.
- 同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输)
- C#的加密解密算法,包括Silverlight的MD5算法
- 算法-加密/解密-DES(数据加密标准)
- [★]基于.NET 的 加密 解密 算法总结[一]
- Java简单的加密解密算法,使用异或运算
- 写出ELGamal公钥密码算法的加密、解密过程
- FlashFXP密码java加密解密算法
- SAM的散列存储加密解密算法以及SYSKEY的计算