C#实现Des加密和解密

using System; 
using System.IO; 
using System.Security.Cryptography; 

namespace Vavic 

/// <summary> 
/// Security 的摘要说明。 
/// </summary> 
public class Security 

const string KEY_64 = "VavicApp"; 
const string IV_64 = "VavicApp"; //注意了,是8个字符,64位 

public Security() 

// 
// TODO: 在此处添加构造函数逻辑 
// 


public static string Encode(string data) 

byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
int i = cryptoProvider.KeySize; 
MemoryStream ms = new MemoryStream(); 
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write); 

StreamWriter sw = new StreamWriter(cst); 
sw.Write(data); 
sw.Flush(); 
cst.FlushFinalBlock(); 
sw.Flush(); 
return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length); 



public static string Decode(string data) 

byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); 
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); 

byte[] byEnc; 
try 

byEnc = Convert.FromBase64String(data); 

catch 

return null; 


DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); 
MemoryStream ms = new MemoryStream(byEnc); 
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read); 
StreamReader sr = new StreamReader(cst); 
return sr.ReadToEnd(); 



posted @   古道轻风  阅读(271)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示