• 大小: 1.29MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-17
  • 语言: C#
  • 标签: C#  

资源简介

运用C#开发的AES文件加密解密软件,支持任意格式、任意大小文件加密。采用字节流的方式对文件加密,当文件过大时可采用分块加密,确保大型文件加密解密成功

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.IO;

namespace AESEncrypt
{
    class AES_EnorDecrypt
    {
        //定义默认密钥
        private static byte[] _aesKeyByte = { 0x12 0x34 0x56 0x78 0x90 0xAB 0xCD 0xEF 0x12 0x34 0x56 0x78 0x90 0xAB 0xCD 0xEF };
        private static string _aesKeyStr = Encoding.UTF8.GetString(_aesKeyByte);

        /// 
        /// 随机生成密钥,默认密钥长度为32,不足在加密时自动填充空格
        /// 

        /// 密钥长度
        /// 
        public static string GetIv(int n)
        {
            string s = “abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ“;
            char[] arrChar = new char[s.Length];
            for (int i = 0; i < s.Length; i++)
            {
                arrChar[i] = Convert.ToChar(s.Substring(i 1));
            }
            StringBuilder num = new StringBuilder();
            Random rnd = new Random(DateTime.Now.Millisecond);
            for (int i = 0; i < n; i++)
            {
                num.Append(arrChar[rnd.Next(0 arrChar.Length)].ToString());
            }
            _aesKeyByte = Encoding.UTF8.GetBytes(num.ToString());
            return _aesKeyStr = Encoding.UTF8.GetString(_aesKeyByte);
        }

        /// 
        /// AES加密,针对文本类文件
        /// 

        /// 被加密的明文
        /// 密钥
        /// 密钥向量
        /// 密文
        public static string AESEncrypt(string Data string Key string Vector)
        {
            byte[] plainBytes = Encoding.UTF8.GetBytes(Data);
            byte[] bKey = new byte[32];
            Array.Copy(Encoding.UTF8.GetBytes(Key.PadRight(bKey.Length)) bKey bKey.Length);
            byte[] bVector = new byte[16];
            Array.Copy(Encoding.UTF8.GetBytes(Vector.PadRight(bVector.Length)) bVector bVector.Length);
            byte[] Cryptograph = null;//加密后的密文
            Rijndael Aes = Rijndael.Create();
            try
            {
                using (MemoryStream Memory = new MemoryStream())
                {
                    //把内存流对象包装成加密流对象
                    using (CryptoStream Encryptor = new CryptoStream(Memory Aes.CreateEncryptor(bKey bVector) CryptoStreamMode.Write))
                    {
                        Encryptor.Write(plainBytes 0 plainBytes.Length);
                        Encryptor.FlushFinalBlock();
                        Cryptograph = Memory.ToArray();
                    }
                }
            }
            catch
            {
                Cryptograph = null;
            }
            return Convert.Tobase64String(Cryptograph);
        }

        /// 
        /// AES加密,任意文件
        /// 

        /// 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8390  2020-04-23 16:48  AES文件加密\AESEncrypt\AESEncrypt\AESEncrypt.csproj

     文件        478  2020-04-18 19:51  AES文件加密\AESEncrypt\AESEncrypt\AESEncrypt.csproj.user

     文件       8433  2020-04-18 10:35  AES文件加密\AESEncrypt\AESEncrypt\AES_EnorDecrypt.cs

     文件        187  2020-04-16 11:27  AES文件加密\AESEncrypt\AESEncrypt\App.config

     文件     835584  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\bin\Debug\AESEncrypt.exe

     文件        187  2020-04-16 11:27  AES文件加密\AESEncrypt\AESEncrypt\bin\Debug\AESEncrypt.exe.config

     文件     294400  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\bin\Debug\AESEncrypt.pdb

     文件      24224  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\bin\Debug\AESEncrypt.vshost.exe

     文件        187  2020-04-16 11:27  AES文件加密\AESEncrypt\AESEncrypt\bin\Debug\AESEncrypt.vshost.exe.config

     文件        490  2010-03-17 22:39  AES文件加密\AESEncrypt\AESEncrypt\bin\Debug\AESEncrypt.vshost.exe.manifest

     文件     689664  2020-04-23 16:48  AES文件加密\AESEncrypt\AESEncrypt\bin\Release\AESEncrypt.exe

     文件        187  2020-04-16 11:27  AES文件加密\AESEncrypt\AESEncrypt\bin\Release\AESEncrypt.exe.config

     文件     194048  2020-04-23 16:48  AES文件加密\AESEncrypt\AESEncrypt\bin\Release\AESEncrypt.pdb

     文件      24224  2020-04-23 16:51  AES文件加密\AESEncrypt\AESEncrypt\bin\Release\AESEncrypt.vshost.exe

     文件        187  2020-04-16 11:27  AES文件加密\AESEncrypt\AESEncrypt\bin\Release\AESEncrypt.vshost.exe.config

     文件        490  2010-03-17 22:39  AES文件加密\AESEncrypt\AESEncrypt\bin\Release\AESEncrypt.vshost.exe.manifest

     文件      12876  2020-04-23 16:46  AES文件加密\AESEncrypt\AESEncrypt\Form1.cs

     文件      16496  2020-04-22 10:48  AES文件加密\AESEncrypt\AESEncrypt\Form1.Designer.cs

     文件     412918  2020-04-22 10:48  AES文件加密\AESEncrypt\AESEncrypt\Form1.resx

     文件       7477  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.csproj.FileListAbsolute.txt

     文件       2226  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.csproj.GenerateResource.Cache

     文件       2211  2020-04-16 11:30  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.csprojResolveAssemblyReference.cache

     文件     835584  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.exe

     文件     270964  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.Form1.resources

     文件     294400  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.pdb

     文件     151404  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.Properties.Resources.resources

     文件        180  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.外部引用.BtnExt.resources

     文件        180  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.外部引用.CheckBox.resources

     文件        180  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.外部引用.Frmbase.resources

     文件        180  2020-04-22 11:07  AES文件加密\AESEncrypt\AESEncrypt\obj\Debug\AESEncrypt.外部引用.FrmDialog.resources

............此处省略103个文件信息

评论

共有 条评论