code_en_de.cs
上传用户:chizxy
上传日期:2014-11-29
资源大小:407k
文件大小:2k
源码类别:

其他行业

开发平台:

C#

  1. using System;
  2. using System.Text;
  3. namespace conn
  4. {
  5. public class code_en_de
  6. {
  7. private static char[] key = "yA36zA48dEhfrvghGRg57h5UlDv3".ToCharArray();
  8.  
  9. public static string Decode(string x)
  10. {
  11. System.Text.StringBuilder sb = new System.Text.StringBuilder();
  12. char[] ca = x.ToCharArray();
  13. for (int i = 0; i < (ca.Length - 2); i += 2)
  14. {
  15. string s1 = "" + ca[i + 2] + ca[i + 3];
  16. string s2 = "" + System.Convert.ToString((byte) key[(i / 2) % 13], 16);
  17. string s3 = "" + ca[i] + ca[i + 1];
  18. int m = (System.Convert.ToInt32(s1, 16) ^ System.Convert.ToInt32(s2, 16)) - System.Convert.ToInt32(s3, 16);
  19. if (m < 0)
  20. {
  21. m += 255;
  22. }
  23. sb.Append((char) ((short) m));
  24. }
  25. return sb.ToString();
  26. }
  27. public static string Encode(string x)
  28. {
  29. char[] ca = x.ToCharArray();
  30. int k = new System.Random().Next(255);
  31. System.Text.StringBuilder sb = null;
  32. if (k > 15)
  33. {
  34. sb = new System.Text.StringBuilder("" + System.Convert.ToString(k, 16));
  35. }
  36. else
  37. {
  38. sb = new System.Text.StringBuilder("0" + System.Convert.ToString(k, 16));
  39. }
  40. int m = System.Convert.ToInt32(sb.ToString(), 16);
  41. for (int i = 0; i < ca.Length; i++)
  42. {
  43. if ((ca[i] + m) > 255)
  44. {
  45. m = ((ca[i] + m) - 255) ^ key[i % 13];
  46. }
  47. else
  48. {
  49. m = (ca[i] + m) ^ key[i % 13];
  50. }
  51. if (m > 15)
  52. {
  53. sb.Append(System.Convert.ToString(m, 16));
  54. }
  55. else
  56. {
  57. sb.Append("0" + System.Convert.ToString(m, 16));
  58. }
  59. }
  60. return sb.ToString().ToUpper();
  61. }
  62. }
  63. }