關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 數據加密中的DES加密算法詳解

        數據加密中的DES加密算法詳解

        作者: 時間:2012-10-23 來源:網絡 收藏

        [0].ToCharArray());

        本文引用地址:http://www.104case.com/article/202130.htm

        // 方式一:調用默認的DES實現方法

        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:“csharpcsc 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:“csharpdes_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加密程序的

        DES算法具有極高的安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發現更有效的辦法。通過窮盡搜索空間,可獲得總共256(大約7.2×1016)個可能的密鑰。如果每秒能檢測一百萬個的話,需要2000年完成檢測。可見,這是很難實現的。當然,隨著科學技術的發展,當出現超高速計算機后,可以考慮把DES密鑰的長度再增長一些,以此來達到更高的保密程度。隨著信息化和數字化社會的發展,隨著計算機和Inte rnet的普及,密碼學必將在國家安全、經濟交流、網絡安全及人民生活等方面發揮更大作用。

        參考文獻

        [1]葉忠杰:計算機網絡安全技術(第二版).科學出版社

        王寶會王大印等:新世紀計算機信息安全教程.電子工業出版社

        張基溫:信息系統安全原理.中國水利水電出版社

        顧巧論蔡振山賈春福:計算機網絡安全.科學出版社


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 锡林郭勒盟| 汾阳市| 策勒县| 高密市| 枣阳市| 屏东县| 盐城市| 星子县| 潢川县| 灵山县| 贵州省| 香港| 姚安县| 阿鲁科尔沁旗| 永福县| 亚东县| 普安县| 神木县| 盐边县| 腾冲县| 昌乐县| 运城市| 南华县| 文成县| 本溪| 南安市| 晋中市| 炎陵县| 额济纳旗| 昌江| 沙洋县| 疏勒县| 顺昌县| 佛坪县| 交城县| 乌拉特前旗| 汶川县| 安多县| 临西县| 绥芬河市| 蒙城县|