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

保定官网优化技巧合肥网络公司seo

保定官网优化技巧,合肥网络公司seo,烟台做网站推广的公司,可以做动效的网站简介 本文基于.NET的C#实现3DES算法的加密和解密过程。可以用在加密软件、加密狗等。 代码下载链接:https://download.csdn.net/download/C_gyl/88487942 使用 第一种方法 加密 KeySize:128(16字节),192(24字节&#x…

   简介

                 本文基于.NET的C#实现3DES算法的加密和解密过程。可以用在加密软件、加密狗等。          代码下载链接:https://download.csdn.net/download/C_gyl/88487942

使用

  第一种方法

   加密

  1. KeySize:128(16字节),192(24字节)。
  2. 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;}

  第二种方法

  1. 第一种方法有个弊端是.Net会对密钥Key进行判断,例如key="0000000000000000",会有报警"指定密钥是“TripleDES”的已知弱密钥,不能使用。" .Net方法(TripleDES.IsWeakKey),它检查3DES密钥的弱点。
  2. 解释弱密钥参考:Decrypting TripleDES:指定的密钥是已知的弱密钥,不能使用 - VoidCC
  3. 破解若密钥参考: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.yidumall.com/news/103243.html

相关文章:

  • 网站被做301技术培训机构
  • 石家庄 外贸网站建设公司西安自助建站
  • 网站建设乌鲁木齐百度关键词排名推广话术
  • 集团网站设计公司电子商务营销方法
  • php cms网站建设seo入门基础知识
  • 南京医院手机网站建设seo技术快速网站排名
  • 做一个网站需要多少人线上营销方案
  • 检查网站的跳转路径是否清晰 哪里要优化seo交互论坛
  • 网站跳出率高百度云官方网站
  • 做网站的p什么2003免费的大数据分析平台
  • 试用期工作总结百度推广优化师培训
  • 网站开发需求模板模板快速网站排名提升
  • 运城注册公司西安优化网站公司
  • 公司怎么在百度做网站什么叫seo
  • 安徽网站备案要多少时间厦门网站流量优化价格
  • 万网是干什么用的沈阳百度seo关键词优化排名
  • 知名网站建设开发青岛网站建设有限公司
  • 模板免费网站站长工具seo推广秒收录
  • gbk编码网站seo入门培训学多久
  • 怎么关闭自己公司网站seo知识是什么意思
  • xx市院门户网站建设方案外贸营销网站
  • 织梦做的网站首页排版错误石家庄百度搜索引擎优化
  • 二手车网站开发多少钱郑州seo哪家专业
  • html商业网站模板长沙关键词优化新行情报价
  • 常州网站建设培训发软文的网站
  • 番禺网站建设培训seo网站自动推广
  • 经营范围 网站开发东莞今天的最新通知
  • 郴州网站建设公司有哪些营销型网站建设团队
  • 展示类网站外贸国际网站推广
  • 代做maya三维动画的网站河南网站seo