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

C#中DES加密用法的使用方法

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

  在C#中直接引用加密類庫比在C中要方便和快速
    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的實體
 SymmetricStreamEncryptor sse = desCreateEncryptor();     // 初始化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


From:http://tw.wingwit.com/Article/program/net/201311/12196.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.