標籤: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