C# AES

來源:互聯網
上載者:User

標籤:c#   aes   加密   

AES加密在Socket通訊中經常會用到.現分享一個ASE加密解密類庫.

650) this.width=650;" src="http://img.baidu.com/hi/jx2/j_0019.gif" alt="j_0019.gif" />

先看看測試 :

using System;using System.Collections.Generic;using System.Linq;using System.Text;using AESLib;namespace AESTest{    public class Program    {        static void Main(string[] args)        {            //靜態加解密測試(每一次用的密碼都是一樣的)->(ABSEDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDDD)            Console.WriteLine("靜態密碼測試加密解密===========================================");            AESTool aestool_static = new AESTool("ABSEDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEDDD",-1,false);//ABSEDEEE為key            string mingwen = "---Aonaufly-我-----%%";            Console.WriteLine("加密明文 : {0}", mingwen);            string miwen = aestool_static.Encrypt(mingwen);            Console.WriteLine("得到密文 : {0}", miwen);            Console.WriteLine("得到明文 : {0}", aestool_static.Decrypt(miwen));            //動態加解密測試(推薦使用)( 每一次用的密碼可能都是不一樣的)->( dynamic_key 動態密碼(下次可以更改) )            Console.WriteLine("\n");            Console.WriteLine("動態密碼測試加密解密(推薦使用 -> 優點 : 安全性更高 , 缺點 : 加密產生的位元組多,效率沒有靜態高)===========================================");            AESTool aestool_dynamic = new AESTool("我---Aonaufly%%", -1, true);//"我---Aonaufly%%"為動態隨機密碼與"ACGF~%"進行組合,保密性更強            string dynamic_key = "ACGF~%";//動態密碼(下次可以更改)            Console.WriteLine("加密明文 : {0}", mingwen);            miwen = aestool_dynamic.Encrypt_Key(mingwen, dynamic_key);            Console.WriteLine("得到密文 : {0}", miwen);            Console.WriteLine("得到明文 : {0}", aestool_dynamic.Decrypt_Key(miwen));            Console.ReadKey();        }    }}

結果 :

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/9D/61/wKioL1l_HwKQPtUGAACvsM-XPbg713.png-wh_500x0-wm_3-wmp_4-s_2780209654.png" title="01.png" alt="wKioL1l_HwKQPtUGAACvsM-XPbg713.png-wh_50" />

如果對程式安全要求很高的話 , 建議使用動態加解密方式.這樣每一次的密碼可能都不一樣.非常的安全.


附如何產生隨機種子( 在動態密碼隨機融合的時候用到 )

        /// <summary>        /// 獲得隨機補充密碼字元char , 動態        /// </summary>        private char RondomFillKey2Dynamic        {            get             {                int len = dynamic_key_random.Length;                char[] arr = dynamic_key_random.ToArray<char>();                Random rdm = new Random(Guid.NewGuid().GetHashCode());//Guid.NewGuid().GetHashCode() 隨機種子                return arr[rdm.Next(0, len)];            }        }


本文出自 “Better_Power_Wisdom” 部落格,請務必保留此出處http://aonaufly.blog.51cto.com/3554853/1952469

C# AES

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.