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

正能量网站推荐免费下载茂名网站建设优化

正能量网站推荐免费下载,茂名网站建设优化,湖北襄阳网站建设,wordpress模板兔[作者:张赐荣] 对称加密是一种加密技术#xff0c;它使用相同的密钥来加密和解密数据。换句话说#xff0c;加密者和解密者需要共享同一个密钥#xff0c;才能进行通信。 对称加密的优点是速度快#xff0c;效率高#xff0c;适合大量数据的加密。对称加密的缺点是密钥的管…[作者:张赐荣] 对称加密是一种加密技术它使用相同的密钥来加密和解密数据。换句话说加密者和解密者需要共享同一个密钥才能进行通信。 对称加密的优点是速度快效率高适合大量数据的加密。对称加密的缺点是密钥的管理和分发比较困难如果密钥泄露或被破解那么加密的数据就会失去保密性。 AES是一种高级加密标准它是一种对称加密算法也就是说它使用相同的密钥来加密和解密数据。AES是美国国家标准技术研究所NIST在2001年选定的一种加密算法用于替代旧的DES算法。AES支持三种不同的密钥长度128位192位和256位。AES的安全性很高目前还没有找到有效的攻击方法。 下面两个函数使用AES加/解密文件。 需要引用 System.Security.Cryptography 命名空间。 // 加密文件         public static async Taskbool EncryptFileAsync (string inputFilePath, string outputFilePath, string key, Actiondouble progressCallback default, CancellationToken cancellationToken default)         {             HashSetIDisposable disposables new HashSetIDisposable();             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 Taskbool DecryptFileAsync (string inputFilePath, string outputFilePath, string key, Actiondouble progressCallback default, CancellationToken cancellationToken default)         {             HashSetIDisposable disposables new HashSetIDisposable();             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://www.hkea.cn/news/14503373/

相关文章:

  • 深圳网站建设行业排行快速搭建网站的工具
  • 濮阳市建站公司衡水市网站制作
  • 天津制作网站公司推荐软件外包交易平台
  • 校友会网站建设各行业关键词
  • 农化网站建设广州安全教育平台初始密码
  • 建网站一定要备案吗湖南外发加工网
  • 哈尔滨建设工程交易中心网站河北石家庄最新数据消息
  • 网站后台怎么做qq群自动加电子商务能从事什么工作
  • 网站建设 企业 资质 等级建设网站需要钱吗
  • 南昌个人做网站展会广告策划公司
  • 英文网站怎么切换中文嘟嘟嘟在线观看播放免费
  • 河南建设工程信息网站郑州seo怎么做
  • 购物网站 开发德宏商城网站建设
  • 南京网站建设服务落实20条优化措施
  • 在小型网站建设小组中的基本不一样的婚恋网站怎么做
  • 太原市城市建设规划局官方网站个人博客网站取名
  • 宁波网站推广公司报价百度平台营销软件
  • 学习php网站开发绿色主题 wordpress
  • 广东电白建设集团有限公司网站做广告的公司
  • 网站开发源代码什么意思主办单位性质与网站名称不符
  • 怎样加入好大夫网站做医生网络平面设计培训班
  • 潜江网站搭建二级域名免费分发
  • 哈尔滨网络科技公司网站购物商城网站建设流程
  • 自助建站系统免费模式自定义优定软件网站建设
  • 目前做的比较好的法律网站有哪些臭臭猫网站建设
  • 网站建设及推广文案小鱼在线网站建设
  • 域名连接网站邢台信息港官网
  • 如何利用淘宝建设网站挣钱常州市网站制作
  • 零基础网站建设教学北京智能网站建设哪里好
  • 余姚网站推广策划案上海自助建站官网