.net使用des加密算法
2015-05-30 21:26
169 查看
String desKey = "BFYB_KEY";//键
String desIV = "BFYB_IIV";//向量
/// <summary>
/// DES加密
/// </summary>
/// <param name="originText"></param>
/// <returns></returns>
public String desEncode(String originText)
{
byte[] tmpDesKey = System.Text.ASCIIEncoding.ASCII.GetBytes(desKey);
byte[] tmpDesIV = System.Text.ASCIIEncoding.ASCII.GetBytes(desIV);
//
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
MemoryStream memStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateEncryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Write);
StreamWriter streamWriter = new StreamWriter(cryptoStream);
streamWriter.Write(originText);
streamWriter.Flush();
cryptoStream.FlushFinalBlock();
streamWriter.Flush();
String retStr = Convert.ToBase64String(memStream.GetBuffer(), 0, (int)memStream.Length);
return retStr;
}
/// <summary>
/// DES解密
/// </summary>
/// <param name="originText"></param>
/// <returns></returns>
public String desDecode(String originText)
{
byte[] tmpDesKey = System.Text.ASCIIEncoding.ASCII.GetBytes(desKey);
byte[] tmpDesIV = System.Text.ASCIIEncoding.ASCII.GetBytes(desIV);
//
byte[] originBytes;
try
{
originText.Replace("_%_", "/");
originText.Replace("-%-", "#");
originBytes = Convert.FromBase64String(originText);
}
catch(Exception exception)
{
return null;
}
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
MemoryStream memStream = new MemoryStream(originBytes);
CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateDecryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Read);
StreamReader steamReader = new StreamReader(cryptoStream);
String retString = steamReader.ReadToEnd();
return retString;
}
String desIV = "BFYB_IIV";//向量
/// <summary>
/// DES加密
/// </summary>
/// <param name="originText"></param>
/// <returns></returns>
public String desEncode(String originText)
{
byte[] tmpDesKey = System.Text.ASCIIEncoding.ASCII.GetBytes(desKey);
byte[] tmpDesIV = System.Text.ASCIIEncoding.ASCII.GetBytes(desIV);
//
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
MemoryStream memStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateEncryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Write);
StreamWriter streamWriter = new StreamWriter(cryptoStream);
streamWriter.Write(originText);
streamWriter.Flush();
cryptoStream.FlushFinalBlock();
streamWriter.Flush();
String retStr = Convert.ToBase64String(memStream.GetBuffer(), 0, (int)memStream.Length);
return retStr;
}
/// <summary>
/// DES解密
/// </summary>
/// <param name="originText"></param>
/// <returns></returns>
public String desDecode(String originText)
{
byte[] tmpDesKey = System.Text.ASCIIEncoding.ASCII.GetBytes(desKey);
byte[] tmpDesIV = System.Text.ASCIIEncoding.ASCII.GetBytes(desIV);
//
byte[] originBytes;
try
{
originText.Replace("_%_", "/");
originText.Replace("-%-", "#");
originBytes = Convert.FromBase64String(originText);
}
catch(Exception exception)
{
return null;
}
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
MemoryStream memStream = new MemoryStream(originBytes);
CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateDecryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Read);
StreamReader steamReader = new StreamReader(cryptoStream);
String retString = steamReader.ReadToEnd();
return retString;
}
相关文章推荐
- Spring AOP--引入增强
- C语言及程序设计进阶例程-19 链表应用
- Python学习之路二
- poj2686 Traveling by Stagecoach
- 个人推荐
- 适配器模式
- C语言及程序设计进阶例程-18 链表中结点的插入和删除
- kruskal求得的生成树是最小生成树的证明
- Nunit单元测试的使用
- linux基础网络设置
- WCF 之 服务契约(Service Contract)
- Gson-JsonParser解析Json字符串
- [Swust OJ 1132]-Coin-collecting by robot
- HDU 5246 超级赛亚ACMer (lower_bound 与 upper_bound)
- Project Euler: Problem 14 Longest Collatz sequence
- HTML5.0笔记 (一)
- C语言及程序设计进阶例程-17 认识链表
- 12总结--苏康
- 好书推荐-Android深度探索(卷2):系统应用源代码分析与ROM定制
- 图解WebSphere 8.5 安装