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

网站名查找网站建设平台讯息

网站名查找,网站建设平台讯息,昭通网站建设 hardlcp,zencart中文网站一、对称加密算法概念# ​ 我们通过计算机网络传输数据时#xff0c;如果无法防止他人窃听#xff0c; 可以利用密码学技术将发送的数据变换成对任何不知道如何做逆变换的人都不可理解的形式#xff0c; 从而保证了数据的机密性。这种变换被称为加密#xff08; encryptio…一、对称加密算法概念# ​ 我们通过计算机网络传输数据时如果无法防止他人窃听 可以利用密码学技术将发送的数据变换成对任何不知道如何做逆变换的人都不可理解的形式 从而保证了数据的机密性。这种变换被称为加密 encryption被加密的数据被称为密 文 ciphertext而加密前的数据被称为明文 plaintext。 接收方必须能通过某种逆变换将密文重新变换回原来的明文该逆变换被称为解密 decryption。加密和解密过程可以以一个密钥 key为参数并且加密和解密过程可以公开 而只有密钥需要保密。 即只有知道密钥的人才能解密密文而任何人即使知道加密或解密算法也无法解密密文。 ​ 加密密钥和解密密钥可以相同也可以不同取决于采用的是对称密钥密码体制还是公开密钥密码体制。 ​ 所谓对称密钥密码体制是一种加密密钥与解密密钥相同的密码体制。在这种加密系统中 两个参与者共享同一个秘密密钥如果用一个特定的密钥加密一条消息也必须要使用相同的密钥来解密该消息。该系统又称为对称密钥系统。 ​ 数据加密标准 Data Encryption Standard DES是对称密钥密码的典型代表由IBM公司研制于1977年被美国定为联邦信息标准 。其加密解密基本流程如下图 二、.NET 使用 DES 加密# ​ DES使用的密钥为64 位 实际密钥长度为56 位有8位用于奇偶校验。密码的字节长度不能低于64位8个字节下面是实现代码 1 using System;2 using System.IO;3 using System.Linq;4 using System.Security.Cryptography;5 using System.Text;6 7 namespace encryption.des8 {9 /// summary10 /// DES 加密与解密11 /// DES加密https://www.zhihu.com/question/3676782912 /// 加密基本知识https://www.biaodianfu.com/des.html13 /// /summary14 public class DesAlgorithm15 {16 public Encoding Encoding { get; set; }17 public PaddingMode Padding { get; set; }18 public CipherMode Mode { get; set; }19 public string PassWord { get; private set; }20 private DESCryptoServiceProvider _des;21 22 #region .ctor23 24 public DesAlgorithm()25 {26 _des new DESCryptoServiceProvider();27 PassWord Convert.ToBase64String(_des.Key);28 Encoding Encoding.UTF8;29 Padding PaddingMode.PKCS7;30 Mode CipherMode.CBC;31 }32 #endregion33 34 35 /// summary36 /// 通过字符串生成新的密钥37 /// /summary38 /// param namepassword密码/param39 /// returns/returns40 public DESCryptoServiceProvider CreateNewkey(string password)41 {42 try43 {44 byte[] buffer Encoding.GetBytes(password).Skip(0).Take(8).ToArray();45 _des new DESCryptoServiceProvider()46 {47 Key buffer,48 IVbuffer,49 };50 PassWord password;51 return _des;52 }53 catch (Exception e)54 {55 Console.WriteLine($Wrong Length:{e.Message},{e.InnerException});56 return null;57 }58 }59 60 /// summary61 /// DES加密62 /// /summary63 /// param namepToEncrypt需要加密的字符串see crefstring//param64 /// returns/returns65 public string Encrypt(string pToEncrypt)66 {67 byte[] inputByteArray Encoding.GetBytes(pToEncrypt);68 return Convert.ToBase64String(this.Encrypt(inputByteArray));69 }70 71 /// summary72 /// DES加密73 /// /summary74 /// param namepToEncrypt待加密的byte数组see crefbyte//param75 /// returns/returns76 public byte[] Encrypt(byte[] pToEncrypt)77 {78 byte[] base64 null;79 using (var ms new MemoryStream())80 {81 using (var cs new CryptoStream(ms, _des.CreateEncryptor(), CryptoStreamMode.Write))82 {83 cs.Write(pToEncrypt, 0, pToEncrypt.Length);84 cs.FlushFinalBlock();85 }86 base64 ms.ToArray();87 }88 return base64;89 }90 91 /// summary92 /// DES解密93 /// /summary94 /// param namepToDecrypt需要解密的字符串/param95 /// returns/returns96 public string Decrypt(string pToDecrypt)97 {98 byte[] inputByteArray Convert.FromBase64String(pToDecrypt);99 return Encoding.GetString(this.Decrypt(inputByteArray)); 100 } 101 102 /// summary 103 /// DES解密 104 /// /summary 105 /// param namepToDecrypt待解密的byte数组see crefbyte//param 106 /// returns/returns 107 public byte[] Decrypt(byte[] pToDecrypt) 108 { 109 byte[] data null; 110 using (var ms new MemoryStream()) 111 { 112 using (CryptoStream cs new CryptoStream(ms, _des.CreateDecryptor(), CryptoStreamMode.Write)) 113 { 114 cs.Write(pToDecrypt, 0, pToDecrypt.Length); 115 cs.FlushFinalBlock(); 116 } 117 data ms.ToArray(); 118 } 119 return data; 120 } 121 } 122 }三、.NET 使用 3DES 加密# ​ DES使用的密钥为64 位它是一个优秀的密码算法目前还没有发现比蛮力攻击更好的破解方法。但随着计算机运算速度的快速提高56位长的密钥已显得太短。56位长的密钥意味着共有256种可能的密钥也就是说共约有7. 6 × 1016 种密钥。假设一台计算机1 µ s可执行一次DES加密同时假定平均只需搜索密钥空间的一半即可找到密钥那么破译DES要超过1千年。但现在利用并行计算技术已经设计出搜索DES密钥的专用芯片。例如在1999年有一批在因特网上合作的人借助于一台不到25万美元的专用计算机在略大于22h的时间就破译了56 位密钥的DES。 ​ 为解决DES密钥太短的问题人们提出了三重DESTriple DES, 3DES并在1985年成为美国的一个商用加密标准[ RFC 2420]。3DES在加密时用三个密钥执行三次DES算法 即 E运算 → D运算 → E运算。 解密时按相反顺序使用这三个密钥执行D运算 → E运算 → D运算。 ​ 3DES目前正在被2001年发布的高级加密标准 Advanced Encryption Standard AES所替代。AES能够使用128位、192位和256位长的密钥用硬件和软件都可以快速实现。它不需要太多内存因此适用于小型移动设备。美国国家标准与技术研究所NIST估计如果用1s破解56位DES的计算机来破解一个128位的AES密钥的话要用大约149万亿年的时间才有可能。 ​ 3DES 使用现有的DES算法并且当三个密钥相同时效果就和DES一样。这有利于逐步推广使用3DES。也可以仅使用两个密钥即 K1 K3相当于密钥长度112位这对于多数商业应用也已经足够长了。下面代码我们采用密钥长度56*3168位的3EDS算法 1 using System;2 using System.IO;3 using System.Linq;4 using System.Security.Cryptography;5 using System.Text;6 7 namespace encryption.des8 {9 /// summary10 /// 3DES加密与解密11 /// /summary12 public class TripleDesAlgorithm13 {14 public Encoding Encoding { get; set; }15 public PaddingMode Padding { get; set; }16 public CipherMode Mode { get; set; }17 public string PassWord { get; private set; }18 19 private TripleDESCng _des;20 21 #region .ctor22 23 public TripleDesAlgorithm()24 {25 _des new TripleDESCng();26 PassWord Convert.ToBase64String(_des.Key);27 Encoding Encoding.UTF8;28 Padding PaddingMode.PKCS7;29 Mode CipherMode.CBC;30 }31 #endregion32 33 /// summary34 /// 通过字符串生成新的密钥35 /// /summary36 /// param namepassword密码/param37 /// returns/returns38 public TripleDESCng CreateNewkey(string password)39 {40 try41 {42 byte[] key Encoding.GetBytes(password).Skip(0).Take(24).ToArray();43 byte[] iv Encoding.GetBytes(password).Skip(0).Take(8).ToArray();44 _des new TripleDESCng()45 {46 Key key,47 IV iv,48 };49 PassWord password;50 return _des;51 }52 catch (Exception e)53 {54 Console.WriteLine($Wrong Length:{e.Message},{e.InnerException});55 return null;56 }57 }58 59 /// summary60 /// 3DES加密61 /// /summary62 /// param namepToEncrypt需要加密的字符串see crefstring//param63 /// returns/returns64 public string Encrypt(string pToEncrypt)65 {66 byte[] inputByteArray Encoding.GetBytes(pToEncrypt);67 return Convert.ToBase64String(this.Encrypt(inputByteArray));68 }69 70 /// summary71 /// 3DES加密72 /// /summary73 /// param namepToEncrypt需要加密的byte数组see crefbyte//param74 /// returns/returns75 public byte[] Encrypt(byte[] pToEncrypt)76 {77 byte[] base64 null;78 using (var ms new MemoryStream())79 {80 using (var cs new CryptoStream(ms, _des.CreateEncryptor(), CryptoStreamMode.Write))81 {82 cs.Write(pToEncrypt, 0, pToEncrypt.Length);83 cs.FlushFinalBlock();84 }85 base64 ms.ToArray();86 }87 return base64;88 }89 90 /// summary91 /// 3DES解密92 /// /summary93 /// param namepToDecrypt需要解密的字符串see crefstring//param94 /// returns/returns95 public string Decrypt(string pToDecrypt)96 {97 byte[] inputByteArray Convert.FromBase64String(pToDecrypt);98 return Encoding.GetString(this.Decrypt(inputByteArray));99 } 100 101 /// summary 102 /// 3DES解密 103 /// /summary 104 /// param namepToDecrypt需要解密的byte数组see crefbyte//param 105 /// returns/returns 106 public byte[] Decrypt(byte[] pToDecrypt) 107 { 108 byte[] data null; 109 using (var ms new MemoryStream()) 110 { 111 using (CryptoStream cs new CryptoStream(ms, _des.CreateDecryptor(), CryptoStreamMode.Write)) 112 { 113 cs.Write(pToDecrypt, 0, pToDecrypt.Length); 114 cs.FlushFinalBlock(); 115 } 116 data (ms.ToArray()); 117 } 118 return data; 119 } 120 } 121 }四、测试代码与效果# 1 static void Main(string[] args)2 {3 // DES字符串加密与解密4 {5 Console.WriteLine(-----------------------------------------------------DES字符串加密与解密--------------------------------------------------);6 var input 数据加密标准 Data Encryption Standard DES是对称密钥密码的典型代表由IBM公司研制于1977年被美国定为联邦信息标准 。;7 Console.Write($加密内容\r\n{input}\r\n);8 var des new DesAlgorithm();9 // TEST:可使用该方法通过字符串生成新的密钥 10 //des.CreateNewkey(https://www.cnblogs.com/dongweian); 11 Console.WriteLine($DES密钥\r\n{des.PassWord}\r\n); 12 var encrypt des.Encrypt(input); 13 Console.WriteLine($DES加密后内容\r\n{encrypt}\r\n); 14 var decrypt des.Decrypt(encrypt); 15 Console.WriteLine($DES解密后内容\r\n{decrypt}\r\n); 16 } 17 18 // DES文件加密与解密 19 { 20 Console.WriteLine(---------------------------------------------------DES文件加密与解密--------------------------------------------------); 21 var input System.IO.File.ReadAllBytes(C:\Users\97460\Desktop\1.rar); 22 Console.Write($加密内容\r\n{Convert.ToBase64String(input)}\r\n); 23 var des new DesAlgorithm(); 24 // TEST:可使用该方法通过字符串生成新的密钥 25 //des.CreateNewkey(https://www.cnblogs.com/dongweian); 26 Console.WriteLine($DES密钥\r\n{des.PassWord}\r\n); 27 var encrypt des.Encrypt(input); 28 Console.WriteLine($DES加密后内容\r\n{Convert.ToBase64String(encrypt)}\r\n); 29 var decrypt des.Decrypt(encrypt); 30 Console.WriteLine($DES解密后内容\r\n{Convert.ToBase64String(decrypt)}\r\n); 31 System.IO.File.WriteAllBytes(1.rar, decrypt); 32 } 33 34 35 36 // 3DES字符串加密与解密 37 { 38 Console.WriteLine(---------------------------------------------------3DES字符串加密与解密--------------------------------------------------); 39 var input 数据加密标准 Data Encryption Standard DES是对称密钥密码的典型代表由IBM公司研制于1977年被美国定为联邦信息标准 。; 40 Console.Write($加密内容\r\n{input}\r\n); 41 var des new TripleDesAlgorithm(); 42 // TEST:可使用该方法通过字符串生成新的密钥 43 //des.CreateNewkey(https://www.cnblogs.com/dongweian); 44 Console.WriteLine($3DES密钥\r\n{des.PassWord}\r\n); 45 var encrypt des.Encrypt(input); 46 Console.WriteLine($3DES加密后内容\r\n{encrypt}\r\n); 47 var decrypt des.Decrypt(encrypt); 48 Console.WriteLine($DES解密后内容\r\n{decrypt}\r\n); 49 } 50 51 // 3DES文件加密与解密 52 { 53 Console.WriteLine(---------------------------------------------------3DES文件加密与解密--------------------------------------------------); 54 var input System.IO.File.ReadAllBytes(C:\Users\97460\Desktop\1.rar); 55 Console.Write($加密内容\r\n{Convert.ToBase64String(input)}\r\n); 56 var des new TripleDesAlgorithm(); 57 // TEST:可使用该方法通过字符串生成新的密钥 58 //des.CreateNewkey(https://www.cnblogs.com/dongweian); 59 Console.WriteLine($3DES密钥\r\n{des.PassWord}\r\n); 60 var encrypt des.Encrypt(input); 61 Console.WriteLine($3DES加密后内容\r\n{Convert.ToBase64String(encrypt)}\r\n); 62 var decrypt des.Decrypt(encrypt); 63 Console.WriteLine($3DES解密后内容\r\n{Convert.ToBase64String(decrypt)}\r\n); 64 System.IO.File.WriteAllBytes(1.rar, decrypt); 65 } 66 Console.ReadKey(); 67 }相关内容计算机网络安全 —— 非对称加密算法 RSA 和数字签名二、计算机网络安全 —— 报文摘要算法 ME5 三、计算机网络安全 —— 实体鉴别与生成大随机数四
http://www.dnsts.com.cn/news/236940.html

相关文章:

  • 深圳专业建站多少钱wordpress增加小工具
  • 福建网站建设制作观澜小学网站建设
  • 查域名网站html制作简单网页
  • 网站空间是虚拟机吗网站每月流量
  • 免费进入正能量的网站wordpress远程调用cdn
  • 论坛网站开发中遇到的问题注册公司要求什么条件
  • 网站被提示危险网站高手总结wordpress函数
  • 网站建设与运营的论文网站推广广告 优帮云
  • 牟平建设局网站潍坊住房与城市建设部网站
  • 怀化火车站网站随机网站生成器
  • 戚墅堰常州做网站wordpress 底部美化
  • 快速免费建网站太原网站制作网页
  • 做电影网站资源哪里来的免费做网站软件下载
  • 六安公司做网站化妆品网站推广策划书
  • 南宁seo网站建设国家建设 免费论文期刊网站
  • 网站 文件 上传一个网站建设域名的构思
  • 网站建设 自学 电子版 pdf下载怎么建立一个免费网址
  • 网校网站开发网建短信通
  • 个人专业网站备案做彩页素材的网站
  • 厦门有什么网站制作公司网站建设怎么把代码放入网站上
  • 公司建多个网站多语种外贸网站
  • 个人公司网站建设答辩济南最好的网站开发
  • 网站维护与建设ppt商城网站建设开发公司
  • 购物网站开发文档mvc公司做网站效果怎么样
  • 怀化市鹤城区建设局网站南城网站建设公司方案
  • 北京网站公司哪家好做海外视频的网站有哪些
  • 网页模板网站 优帮云五金外发加工网
  • 深圳做app网站设计娱乐企业网站建设
  • 毕业设计餐饮网站建设房屋产权地址备案在那个网站做
  • 政务网站集约化建设要求手机在线网页制作