熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

使用C#編寫DES加密程序的framework

2013-11-13 09:55:52  來源: .NET編程 

  還是我的老觀點對於新東西我們要不斷練習才能夠掌握它所以我就不寫些抽象的概念了打算以後不定期給出一些實際的代碼呵呵在微軟的幫助中喜歡把它帶的例子稱為它的新技術的Framework我在實際編程中確實感覺如此我們往往是根據這些實例代碼來編寫自己的實際應用的所以我也用了framework這個名詞

  這個例子中演示了如何使用C#中的加密包進行DES算法加密由於NGWNET中帶的幫助實在是簡單和沒有一樣呵呵不過大家可以借助

  這個例子一窺DES加密的用法
des_democs代碼如下

  using System;
using SystemSecurityCryptography;
using SystemIO;
using SystemText;

  public class EncryptStringDES {

  public static void Main(String[] args) {
        if (argsLength < ) {
            ConsoleWriteLine(Usage: des_demo <stringtoencrypt> args[]);
            return;
        }

  // 使用UTF函數加密輸入參數
        UTFEncoding utfEncoding = new UTFEncoding();
        byte[] inputByteArray = utfEncodingGetBytes(args[]ToCharArray());

  // 方式一調用默認的DES實現方法DES_CSP
        DES des = DESCreate();
        // 方式二直接使用DES_CSP()實現DES的實體
        //DES_CSP DES = new DES_CSP();

  // 初始化DES加密的密鑰和一個隨機的比特的初始化向量(IV)
        Byte[] key = {x x x x x xab xcd xef};
        Byte[] IV = {x x x x x xab xcd xef};
        desKey = key;
        desIV = IV;

  // 建立加密流
          SymmetricStreamEncryptor sse = desCreateEncryptor();

  // 使用CryptoMemoryStream方法獲取加密過程的輸出
        CryptoMemoryStream cms = new CryptoMemoryStream();

  // 將SymmetricStreamEncryptor流中的加密數據輸出到CryptoMemoryStream中
        sseSetSink(cms);

  // 加密完畢將結果輸出到控制台
        sseWrite(inputByteArray);
        sseCloseStream();

  // 獲取加密數據
        byte[] encryptedData = cmsData;

  // 輸出加密後結果
        ConsoleWriteLine(加密結果);
        for (int i = ; i < encryptedDataLength; i++) {
            ConsoleWrite({:X} encryptedData[i]);
        }
        ConsoleWriteLine();

  //上面演示了如何進行加密下面演示如何進行解密
        SymmetricStreamDecryptor ssd = desCreateDecryptor();
        cms = new CryptoMemoryStream();
        ssdSetSink(cms);
        ssdWrite(encryptedData);
        ssdCloseStream();

  byte[] decryptedData = cmsData;
        char[] decryptedCharArray = utfEncodingGetChars(decryptedData);
        ConsoleWriteLine(解密後數據);
        ConsoleWrite(decryptedCharArray);
        ConsoleWriteLine();
    }
}

  編譯

  D:\csharp>csc des_democs
Microsoft (R) C# Compiler Version [NGWS runtime ]
Copyright (C) Microsoft Corp All rights reserved

  運行實例
D:\csharp>des_demoexe 使用C#編寫DES加密程序的framework

  加密結果
D C D C C CF CE F D E A D ED A A F E E BA
B D B E F D C D F D B E A

  解密後數據

  使用C#編寫DES加密程序的framework


From:http://tw.wingwit.com/Article/program/net/201311/12013.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.