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

网站建设计算机人员招聘网站对比

网站建设计算机人员招聘,网站对比,金坛网站建设,郑州网站建设首选创新简介 本文基于.NET的C#实现3DES算法的加密和解密过程。可以用在加密软件、加密狗等。 代码下载链接#xff1a;https://download.csdn.net/download/C_gyl/88487942 使用 第一种方法 加密 KeySize#xff1a;128(16字节)#xff0c;192#xff08;24字节#x…   简介 本文基于.NET的C#实现3DES算法的加密和解密过程。可以用在加密软件、加密狗等。          代码下载链接https://download.csdn.net/download/C_gyl/88487942 使用 第一种方法 加密 KeySize128(16字节)19224字节。Key TripleDES 算法的密钥。 public static string Encrypt3DES(string str, string key){try{TripleDESCryptoServiceProvider DES new TripleDESCryptoServiceProvider();DES.KeySize 128;DES.Key Encoding.UTF8.GetBytes(key);DES.Mode CipherMode.ECB;DES.Padding PaddingMode.Zeros;ICryptoTransform DESEncrypt DES.CreateEncryptor();byte[] Buffer Encoding.UTF8.GetBytes(str);return ToHexString(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length), str.Length);}catch (Exception ex) { return ex.Message; }} 解密 public static string Decrypt3DES(string str, string key){try{TripleDESCryptoServiceProvider DES new TripleDESCryptoServiceProvider();DES.Key Encoding.UTF8.GetBytes(key);DES.Mode CipherMode.ECB;DES.Padding PaddingMode.Zeros;ICryptoTransform DESDecrypt DES.CreateDecryptor();byte[] Buffer HexGetBytes(str);byte[] Destxt DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length);return Encoding.UTF8.GetString(Destxt, 0, Destxt.Length);}catch (Exception ex) { return ex.Message; }} 转换 // byte[]转16进制格式string 0xae00cf AE00CF private static string ToHexString(byte[] bytes, int length){string hexString string.Empty;if (bytes ! null){StringBuilder strB new StringBuilder();if (length 0) { length bytes.Length; }for (int i 0; i length; i){strB.Append(bytes[i].ToString(X2));}hexString strB.ToString();} return hexString;}//16进制转byte[] 0x0a 10private static byte[] HexGetBytes(string hexString){int discarded 0;string newString ;char c;// remove all none A-F, 0-9, charactersfor (int i 0; i hexString.Length; i){c hexString[i];if (Uri.IsHexDigit(c))newString c;elsediscarded;}// if odd number of characters, discard last characterif (newString.Length % 2 ! 0){discarded;newString newString.Substring(0, newString.Length - 1);}int byteLength newString.Length / 2;byte[] bytes new byte[byteLength];string hex;int j 0;for (int i 0; i bytes.Length; i){hex new String(new Char[] { newString[j], newString[j 1] });bytes[i] HexToByte(hex);j j 2;}return bytes;}private static byte HexToByte(string hex){byte tt byte.Parse(hex, System.Globalization.NumberStyles.HexNumber);return tt;} 第二种方法 第一种方法有个弊端是.Net会对密钥Key进行判断例如key0000000000000000会有报警指定密钥是“TripleDES”的已知弱密钥不能使用。 .Net方法TripleDES.IsWeakKey它检查3DES密钥的弱点。解释弱密钥参考Decrypting TripleDES指定的密钥是已知的弱密钥不能使用 - VoidCC破解若密钥参考https://www.cnblogs.com/jintianhu/archive/2011/11/26/2264375.html 加密 public static string DESEncrypt(string str, string key){try{TripleDESCryptoServiceProvider des new TripleDESCryptoServiceProvider();des.Padding PaddingMode.Zeros;byte[] keyByte Encoding.UTF8.GetBytes(key);Type t Type.GetType(System.Security.Cryptography.CryptoAPITransformMode);object obj t.GetField(Encrypt, BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly).GetValue(t);MethodInfo mi des.GetType().GetMethod(_NewEncryptor, BindingFlags.Instance | BindingFlags.NonPublic);ICryptoTransform desCrypt (ICryptoTransform)mi.Invoke(des, new object[] { keyByte, CipherMode.ECB, null, 0, obj });byte[] Buffer Encoding.UTF8.GetBytes(str);byte[] result desCrypt.TransformFinalBlock(Buffer, 0, Buffer.Length);return BitConverter.ToString(result).Replace(-, );}catch (Exception ex) { return ex.Message; }} 解密 public static string DESDecrypt(string str, string key){try{TripleDESCryptoServiceProvider des new TripleDESCryptoServiceProvider();des.Padding PaddingMode.Zeros;byte[] keyByte Encoding.UTF8.GetBytes(key);Type t Type.GetType(System.Security.Cryptography.CryptoAPITransformMode);object obj t.GetField(Decrypt, BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly).GetValue(t);MethodInfo mi des.GetType().GetMethod(_NewEncryptor, BindingFlags.Instance | BindingFlags.NonPublic);ICryptoTransform desCrypt (ICryptoTransform)mi.Invoke(des, new object[] { keyByte, CipherMode.ECB, null, 0, obj });byte[] Buffer HexGetBytes(str);byte[] Destxt desCrypt.TransformFinalBlock(Buffer, 0, Buffer.Length);return Encoding.UTF8.GetString(Destxt, 0, Destxt.Length);}catch (Exception ex) { return ex.Message; }} 结果  static void Main(string[] args){string str 12345678;//长度是8的倍数string key 1234567812345678; //长度是16或24//第一种方法//有密钥检测//指定密钥是“TripleDES”的已知弱密钥不能使用。string strEncrypt1 Encrypt3DES(str, key);System.Console.WriteLine(加密结果1 strEncrypt1);string strDecrypt1 Decrypt3DES(strEncrypt1, key);System.Console.WriteLine(解密结果1 strDecrypt1);//第二种方法//无弱密钥检测string strEncrypt2 DESEncrypt(str, key);System.Console.WriteLine(加密结果2 strEncrypt2);string strDecrypt2 DESDecrypt(strEncrypt2, key);System.Console.WriteLine(解密结果2 strDecrypt2);Console.ReadKey();} key 1234567890123456 key 1234567812345678
http://www.dnsts.com.cn/news/74598.html

相关文章:

  • 织梦网站源码好吗直接进网站的浏览器打开
  • 网站建设合同前期需注意哪些问题松江专业做网站
  • 花乡做网站公司wordpress修改导航
  • 企业官网建设 创意网站建设注册公司一般多少费用
  • 深圳做公司网站的公司网站建设制作模板
  • win10 wordpress安装教程视频百度提升优化
  • 网站多套系统如何调用wordpress 图片并列
  • 网站建设的案例东莞骄阳网站建设
  • 如何跟客户销售做网站wordpress配置页面
  • 天河做网站系统比较大的做网站的公司
  • 昆明市网站建设公司室内装修软件
  • 网站模板可以自己做华文细黑做网站有版权吗
  • 网站表单功能做网站杭州
  • 做网站商城需要什么条件wordpress微信联系
  • asp.net网站开发项目化教程上海天华建筑设计有限公司怎么样
  • 网站怎么做排名微信网站制作合同
  • 替朋友做网站wordpress纯静态网站
  • html网站免费下载网站建设 落地页
  • 关于做网站的文献综述小说引流推广
  • 鞍山市网站建设网站被k申诉
  • 给网站做路由网站好友邀请链接生成 php
  • 网站怎么做第三方登录wordpress为什么是英文版
  • 公司网站建设怎么选择wordpress5.2.1
  • 合肥网站建设多少钱办公管理软件
  • 公司网站建设怎么协调内容与保密彩票网站为啥链接做两次跳转
  • 做旅行网站的意义建筑设计专业推荐网站
  • 做网站哪个编辑器好用众讯 网站建设
  • 长沙如何做网站可以下载电影的网站怎么做
  • 网站开发平台工具长沙seo报价
  • 带登录网站模板wordpress文章rss