源碼推薦:使用C#編寫DES加密程序的framework
2024-07-21 02:25:15
供稿:網友
源碼推薦:使用c#編寫des加密程序的framework
batman
還是我的老觀點,對于新東西我們要不斷練習才能夠掌握它。所以
我就不寫些抽象的概念了,打算以后不定期給出一些實際的代碼,呵呵
在微軟的幫助中,喜歡把它帶的例子稱為它的新技術的framework,我在
實際編程中確實感覺如此,我們往往是根據這些實例代碼來編寫自己的
實際應用的,所以我也用了framework這個名詞。 :)
這個例子中演示了如何使用c#中的加密包進行des算法加密,由于
ngwnet中帶的幫助實在是簡單,和沒有一樣,呵呵,不過大家可以借助
這個例子一窺des加密的用法。
des_demo.cs代碼如下:
using system;
using system.security.cryptography;
using system.io;
using system.text;
public class encryptstringdes {
public static void main(string[] args) {
if (args.length < 1) {
console.writeline("usage: des_demo <string-to-encrypt>", args[0]);
return;
}
// 使用utf8函數加密輸入參數
utf8encoding utf8encoding = new utf8encoding();
byte[] inputbytearray = utf8encoding.getbytes(args[0].tochararray());
// 方式一:調用默認的des實現方法des_csp.
des des = des.create();
// 方式二:直接使用des_csp()實現des的實體
//des_csp des = new des_csp();
// 初始化des加密的密鑰和一個隨機的、8比特的初始化向量(iv)
byte[] key = {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef};
byte[] iv = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef};
des.key = key;
des.iv = iv;
// 建立加密流
symmetricstreamencryptor sse = des.createencryptor();
// 使用cryptomemorystream方法獲取加密過程的輸出
cryptomemorystream cms = new cryptomemorystream();
// 將symmetricstreamencryptor流中的加密數據輸出到cryptomemorystream中
sse.setsink(cms);
// 加密完畢,將結果輸出到控制臺
sse.write(inputbytearray);
sse.closestream();
// 獲取加密數據
byte[] encrypteddata = cms.data;
// 輸出加密后結果
console.writeline("加密結果:");
for (int i = 0; i < encrypteddata.length; i++) {
console.write("{0:x2} ",encrypteddata[i]);
}
console.writeline();
//上面演示了如何進行加密,下面演示如何進行解密
symmetricstreamdecryptor ssd = des.createdecryptor();
cms = new cryptomemorystream();
ssd.setsink(cms);
ssd.write(encrypteddata);
ssd.closestream();
byte[] decrypteddata = cms.data;
char[] decryptedchararray = utf8encoding.getchars(decrypteddata);
console.writeline("解密后數據:");
console.write(decryptedchararray);
console.writeline();
}
}
編譯:
d:/csharp>csc des_demo.cs
microsoft (r) c# compiler version 7.00.8905 [ngws runtime 2000.14.1812.10]
copyright (c) microsoft corp 2000. all rights reserved.
運行實例:
d:/csharp>des_demo.exe 使用c#編寫des加密程序的framework
加密結果:
3d 22 64 c6 57 d1 c4 c3 cf 77 ce 2f d0 e1 78 2a 4d ed 7a a8 83 f9 0e 14 e1 ba 38
7b 06 41 8d b5 e9 3f 00 0d c3 28 d1 f9 6d 17 4b 6e a7 41 68 40
解密后數據:
使用c#編寫des加密程序的framework