温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C# AES

发布时间:2020-06-11 02:44:35 来源:网络 阅读:489 作者:Aonaufly 栏目:编程语言

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

C# AES


先看看测试 :

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

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


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

        /// <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)];
            }
        }


附件:http://down.51cto.com/data/2366899
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI