首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 關於.net的加解密密碼的代碼
【标  题】:關於.net的加解密密碼的代碼
【关键字】:.net
【来  源】:http://blog.csdn.net/xiwang6428/archive/2006/10/21/1344063.aspx

關於.net的加解密密碼的代碼

上星期在社區的時候,我問了好久有關的加解密代碼的問題,結果都沒人能解決. 不得已, 只好自己解決了,以下的代碼:

 

/// <summary>
        
/// DES加密字串,并返回加密后的字串
        
/// </summary>
        
/// <param name="data">要加密的字串</param>
        
/// <returns></returns>

        public static string EncryptData(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);

        }


        
/// <summary>
        
/// DES解密字串,并返回解密還原好的字串
        
/// </summary>
        
/// <param name="data">要解密的字串</param>
        
/// <returns></returns>

        public static string DecryptData(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();
        }

注意:密碼和向量的字節數要相同,否則加密后的密碼不能再解密.這是問題的關鍵 

VB6实现键盘鼠标全局Hook:【上一篇】
Windows下动态内存分配方式:【下一篇】
【相关文章】
  • 初探宏的强大,写一个统计VB.NET代码行数的宏(上)
  • .NET经典图书推荐(上)
  • .NET 下实现无组件上传
  • .NET 正则表达式
  • ASP.NET 中处理页面“回退”的方法
  • .NET vs Java
  • ASP.NET入门猜想
  • 【蛙蛙推荐】Lucene.net试用
  • ASP.NET(C#)和Sql2005组合性能问题研究
  • 技巧和诀窍:简单的ASP.NET 2.0 SQL提供器的源码和文档发布了
  • 【随机文章】
  • QT使用中的其他3个问题及解决。
  • 学C++的人都应该看的好文
  • 傻瓜一次安装WindowsNT(2000/XP/2003)+Apche+PHP+MySQL+Perl
  • BitTorrent Trackerless DHT协议规范V1.0试行草案
  • linux下用滚轮鼠标
  • 摄像头新玩法:精美大头贴轻松拍
  • 数字化实验系统
  • Photoshop绘制一枝铅笔
  • 隐藏上机用户登录的名字
  • AP-2000无线接入点设备
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.