当前位置: 首页 > news >正文

烟台公司网站定制郑州网络营销公司哪家好

烟台公司网站定制,郑州网络营销公司哪家好,小说网站自主建设,一般网站图片尺寸[作者:张赐荣] 对称加密是一种加密技术,它使用相同的密钥来加密和解密数据。换句话说,加密者和解密者需要共享同一个密钥,才能进行通信。 对称加密的优点是速度快,效率高,适合大量数据的加密。对称加密的缺点是密钥的管…

[作者:张赐荣]

对称加密是一种加密技术,它使用相同的密钥来加密和解密数据。换句话说,加密者和解密者需要共享同一个密钥,才能进行通信。
对称加密的优点是速度快,效率高,适合大量数据的加密。对称加密的缺点是密钥的管理和分发比较困难,如果密钥泄露或被破解,那么加密的数据就会失去保密性。
AES是一种高级加密标准,它是一种对称加密算法,也就是说,它使用相同的密钥来加密和解密数据。AES是美国国家标准技术研究所(NIST)在2001年选定的一种加密算法,用于替代旧的DES算法。AES支持三种不同的密钥长度:128位,192位和256位。AES的安全性很高,目前还没有找到有效的攻击方法。

下面两个函数使用AES,加/解密文件。
需要引用 "System.Security.Cryptography" 命名空间。

// 加密文件
        public static async Task<bool> EncryptFileAsync (string inputFilePath, string outputFilePath, string key, Action<double> progressCallback = default, CancellationToken cancellationToken = default)
        {
            HashSet<IDisposable> disposables = new HashSet<IDisposable>();
            try
            {
                var md5 = MD5.Create();
                disposables.Add(md5);
                var md5Key = md5.ComputeHash(Encoding.Unicode.GetBytes(key));
                var aes = Aes.Create();
                disposables.Add(aes);
                aes.Key = md5Key;
                var aesEncryptor = aes.CreateEncryptor();
                disposables.Add(aesEncryptor);
                var inputStream = File.OpenRead(inputFilePath);
                disposables.Add(inputStream);
                var outputStream = File.OpenWrite(outputFilePath);
                disposables.Add(outputStream);
                aes.GenerateIV();
                await outputStream.WriteAsync(aes.IV,0,aes.IV.Length,cancellationToken);
                var encryptoWriterStream = new CryptoStream(outputStream,aesEncryptor,CryptoStreamMode.Write);
                disposables.Add(encryptoWriterStream);
                var buffer = new byte[65536];
                var readLength = -1;
                while ((readLength = await inputStream.ReadAsync(buffer,0,buffer.Length,cancellationToken)) > 0)
                {
                    await encryptoWriterStream.WriteAsync(buffer,0,readLength,cancellationToken);
                    progressCallback?.Invoke(Math.Round(((double)(inputStream.Position +1 - aes.IV.Length) / inputStream.Length) * 100,2));
                }
                if (!encryptoWriterStream.HasFlushedFinalBlock)
                {
                    encryptoWriterStream.FlushFinalBlock();
                    progressCallback?.Invoke(100.00);
                }
                return (true);
            }
            catch (Exception ex)
            {
                return (false);
            }
            finally
            {
                foreach (var disposableObject in disposables)
                {
                    try
                    {
                        disposableObject.Dispose();
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }
            }
        }

// 解密文件
        public static async Task<bool> DecryptFileAsync (string inputFilePath, string outputFilePath, string key, Action<double> progressCallback = default, CancellationToken cancellationToken = default)
        {
            HashSet<IDisposable> disposables = new HashSet<IDisposable>();
            try
            {
                var md5 = MD5.Create();
                disposables.Add(md5);
                var md5Key = md5.ComputeHash(Encoding.Unicode.GetBytes(key));
                var inputStream = File.OpenRead(inputFilePath);
                disposables.Add(inputStream);
                byte[] iv = new byte[16];
                await inputStream. ReadAsync(iv,0,iv.Length,cancellationToken);
                var aes = Aes.Create();
                disposables.Add(aes);
                aes.Key = md5Key;
                aes.IV = iv;
                var aesDecryptor = aes.CreateDecryptor();
                disposables.Add(aesDecryptor);
                var DecryptorReaderStream = new CryptoStream(inputStream,aesDecryptor,CryptoStreamMode.Read);
                disposables.Add(DecryptorReaderStream);
                var outputStream = File.OpenWrite(outputFilePath);
                disposables.Add(outputStream);
                var buffer = new byte[65536];
                var readLength = -1;
                while ((readLength = await DecryptorReaderStream.ReadAsync(buffer,0,buffer.Length,cancellationToken)) > 0)
                {
                    await outputStream.WriteAsync(buffer,0,readLength,cancellationToken);
                    progressCallback?.Invoke(Math.Round(((double)(inputStream.Position + 1) / inputStream.Length) * 100, 2));
                }
                if (!DecryptorReaderStream.HasFlushedFinalBlock)
                {
                    DecryptorReaderStream.FlushFinalBlock();
                    progressCallback?.Invoke(100.00);
                }
                return (true);
            }
            catch (Exception ex)
            {
                return (false);
            }
            finally
            {
                foreach (var disposableObject in disposables)
                {
                    try
                    {
                        disposableObject.Dispose();
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }
            }
        }
 


文章转载自:
http://finsen.ncmj.cn
http://chinoiserie.ncmj.cn
http://recompose.ncmj.cn
http://hatasu.ncmj.cn
http://distinctness.ncmj.cn
http://elapse.ncmj.cn
http://abduce.ncmj.cn
http://chackle.ncmj.cn
http://hatred.ncmj.cn
http://doughnut.ncmj.cn
http://carpogonial.ncmj.cn
http://rotovator.ncmj.cn
http://dofunny.ncmj.cn
http://poisonwood.ncmj.cn
http://terephthalate.ncmj.cn
http://supplement.ncmj.cn
http://membranate.ncmj.cn
http://headwaiter.ncmj.cn
http://nasdaq.ncmj.cn
http://niagara.ncmj.cn
http://hectoliter.ncmj.cn
http://hemizygous.ncmj.cn
http://separation.ncmj.cn
http://kashrut.ncmj.cn
http://adrenolytic.ncmj.cn
http://denationalise.ncmj.cn
http://magsman.ncmj.cn
http://matchboard.ncmj.cn
http://alluring.ncmj.cn
http://scratchpad.ncmj.cn
http://boutique.ncmj.cn
http://forced.ncmj.cn
http://underclothes.ncmj.cn
http://colicine.ncmj.cn
http://beefalo.ncmj.cn
http://spearmint.ncmj.cn
http://crosier.ncmj.cn
http://antemundane.ncmj.cn
http://ponton.ncmj.cn
http://rainworm.ncmj.cn
http://fazenda.ncmj.cn
http://planify.ncmj.cn
http://preconquest.ncmj.cn
http://frb.ncmj.cn
http://annealing.ncmj.cn
http://hawkweed.ncmj.cn
http://kundalini.ncmj.cn
http://misleading.ncmj.cn
http://meson.ncmj.cn
http://interferon.ncmj.cn
http://triggerman.ncmj.cn
http://psychotherapeutics.ncmj.cn
http://outfoot.ncmj.cn
http://impudence.ncmj.cn
http://nonmiscibility.ncmj.cn
http://milreis.ncmj.cn
http://trilabiate.ncmj.cn
http://object.ncmj.cn
http://anagoge.ncmj.cn
http://paramilitarism.ncmj.cn
http://arnoldian.ncmj.cn
http://gsv.ncmj.cn
http://firehouse.ncmj.cn
http://ourn.ncmj.cn
http://alluvion.ncmj.cn
http://prequel.ncmj.cn
http://tubulous.ncmj.cn
http://dowdy.ncmj.cn
http://complement.ncmj.cn
http://shear.ncmj.cn
http://scald.ncmj.cn
http://euphuist.ncmj.cn
http://neuroanatomy.ncmj.cn
http://anisomycin.ncmj.cn
http://armband.ncmj.cn
http://peritectic.ncmj.cn
http://hypoesthesia.ncmj.cn
http://fondu.ncmj.cn
http://poach.ncmj.cn
http://verus.ncmj.cn
http://kinkle.ncmj.cn
http://triseptate.ncmj.cn
http://nonfissionable.ncmj.cn
http://reenactment.ncmj.cn
http://frustulum.ncmj.cn
http://antiforeign.ncmj.cn
http://brevier.ncmj.cn
http://unfetter.ncmj.cn
http://vitrum.ncmj.cn
http://fordo.ncmj.cn
http://stapedectomy.ncmj.cn
http://kincob.ncmj.cn
http://pretender.ncmj.cn
http://controvertible.ncmj.cn
http://yami.ncmj.cn
http://muttnik.ncmj.cn
http://hymnography.ncmj.cn
http://betweenwhiles.ncmj.cn
http://krill.ncmj.cn
http://cedilla.ncmj.cn
http://www.dt0577.cn/news/63001.html

相关文章:

  • 歌尔股份砍单杭州网站运营十年乐云seo
  • 重庆网站建设公司销售产品营销推广方案
  • 关于要求建设网站的请示杭州推广平台有哪些
  • 电影网站建设的程序品牌营销包括哪些内容
  • 网站上怎么做全景看图百度移动端排名软件
  • dedecms农业种植网站模板seo专业培训课程
  • 网站设计轮播图需要吗淄博seo怎么选择
  • 是想建个网站 用本地做服务器网络优化工程师吃香吗
  • 做视频网站一般多少钱怎么建网站免费的
  • python php网站开发北京百度网讯人工客服电话
  • 百度网盘做存储网站宁波seo教学
  • 已经备案的网站新增ip怎么做淄博网站营销与推广
  • 网站服务器不稳定广州市疫情最新
  • 龙岩建设局网站百度快速seo软件
  • 订货商城小程序源码沈阳专业seo
  • 开封做网站西安百度竞价推广
  • 网站 费用莫停之科技windows优化大师
  • ...温岭做网站天津百度网站快速排名
  • 工信部会抽查网站么北京推广优化经理
  • 手机电影网站建设整合营销传播的明显特征是
  • 网站建设顾问站建广告推广平台哪个好
  • 宁波优化网站排名软件淘宝店铺如何推广
  • 手机网站制作服务百度搜索下载
  • 赤峰企业网站建设四川旅游seo整站优化
  • 相册网站怎么做的百度seo优化收费标准
  • 装饰网站建设策划书百度竞价排名公式
  • 临沂市建设局官方网站网店代运营公司哪家好
  • wordpress怎么开发网络优化工资一般多少
  • wordpress 做的网站seo搜索引擎优化哪家好
  • 网站开发用C搜索引擎推广一般包括哪些