网站建设资讯

NEWS

网站建设资讯

C#AES

AES加密在Socket通讯中经常会用到.现分享一个ASE加密解密类库.

创新互联公司作为成都网站建设公司,专注网站建设公司、网站设计,有关企业网站制作方案、改版、费用等问题,行业涉及成都软装设计等多个领域,已为上千家企业服务,得到了客户的尊重与认可。


先看看测试 :

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();
        }
    }
}

结果 :

C# AES

如果对程序安全要求很高的话 , 建议使用动态的加解密方式.这样每一次的密码可能都不一样.非常的安全.

附如何产生随机种子( 在动态密码随机融合的时候用到 )

        /// 
        /// 获得随机补充密码字符char , 动态
        /// 
        private char RondomFillKey2Dynamic
        {
            get 
            {
                int len = dynamic_key_random.Length;
                char[] arr = dynamic_key_random.ToArray();
                Random rdm = new Random(Guid.NewGuid().GetHashCode());//Guid.NewGuid().GetHashCode() 随机种子
                return arr[rdm.Next(0, len)];
            }
        }

本文标题:C#AES
网站地址:http://cdweb.net/article/iijpgc.html