国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

源碼推薦:使用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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达尔| 长泰县| 徐闻县| 蓝田县| 湾仔区| 南城县| 韶山市| 开原市| 惠州市| 兖州市| 南木林县| 潜山县| 武强县| 芒康县| 新丰县| 玉溪市| 永嘉县| 福贡县| 长丰县| 龙川县| 土默特左旗| 西充县| 浙江省| 阿拉善右旗| 台北市| 长顺县| 磴口县| 新化县| 凤山县| 金阳县| 延安市| 墨脱县| 安西县| 鹿邑县| 依兰县| 金川县| 晴隆县| 腾冲县| 监利县| 濮阳市| 平邑县|