hBifTs

山自高兮水自深!當塵霧消散,唯事實留傳.荣辱不惊, 看庭前花开花落; 去留随意, 望天上云展云舒.

导航

AppEncrypts helper.提供加密解密的一个通用类:)

Posted on 2004-07-16 00:48  hbiftsaa  阅读(2941)  评论(4编辑  收藏  举报

在.NET中,我们可以直接使用System.Security.Cryptography空间中的通过加密/解密类进行操作.
这几天在玩数据加密的时候用到了.
感觉用起来不是很方便.
于是写了一个通用(hoho,算是比较通用的吧)的加密/解密的类.
现在只完成了对称加密类的封装.
代码:

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

namespace CnBlogs.Helper.hBifTs
{

    
AppEncrypt

    
DESEncrypt

    
TripleDESEncrypt

    
RC2Encrypt

    
RijndaelEncrypt
}



使用只要直接调用基类的Encrypt和Dencrypt函数即可..
测试用例如下:
using System;
using System.IO;
using System.Text;
using CnBlogs.Helper.hBifTs;
using NUnit.Framework;


namespace CnBlogs.Helper.hBifTs.TestCases
{
    
/// <summary>
    
/// Summary description for TestAppEncrypt.
    
/// </summary>
    
/// 

    [TestFixture]
    
public class TestAppEncrypt
    
{
        
private AppEncrypt enc;
        
private MemoryStream mem;

        
public TestAppEncrypt()
        
{
        }


        [SetUp] 
public void Setup(){
            
byte[] msg = Encoding.Unicode.GetBytes("hello,I got the new world,猪啊..");
            mem 
= new MemoryStream( msg);
        }


        [TearDown] 
public void TearDown(){
            mem.Close();
        }


        
public void Common(){
            Stream dest 
= new MemoryStream();
            enc.Encrypt( mem,
ref dest);
            Stream dest1 
= new MemoryStream( ((MemoryStream)dest).ToArray());
            Stream dest2 
= new MemoryStream();
            enc.Dencrypt( dest1,
ref dest2);
            Assert.AreEqual( Encoding.Unicode.GetString(mem.ToArray()),Encoding.Unicode.GetString(((MemoryStream)dest2).ToArray()));
        }


        [Test] 
public void TestDES(){
            enc 
= new DESEncrypt();
            Common();
        }


        [Test] 
public void TestTripleDES(){
            enc 
= new TripleDESEncrypt();
            Common();
        }


        [Test] 
public void TestRC2(){
            enc 
= new RC2Encrypt();
            Common();
        }


        [Test] 
public void TestRijndael(){
            enc 
= new RijndaelEncrypt();
            Common();
        }

    }

}


灵感之源的要求,提供代码下载: AppEncrypts.zip