psw_bczh3.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Microsoft.VisualBasic;
  5. using System.IO;
  6. //using System.Random;
  7. namespace LJLib.Tools.DEncrypt
  8. {
  9. public class psw_bczh3
  10. {
  11. //f_psw_BCzh2(STRING obj_string,INT add_expr,STRING keystr) 三倍变长加密,可以用于任意字符串
  12. //obj_string 目标的处理字符串,不能为空
  13. //add_expr 0 :加密,1:解密
  14. //arg_keystr 密钥数字字符串
  15. //private string obj_string;
  16. //private int add_expr;
  17. //private string arg_keystr;
  18. public static string GetEntrypt(string obj_string, int add_expr, string arg_keystr)
  19. {
  20. string RT_STRING = "";
  21. if (obj_string == null || arg_keystr.Length == 0)
  22. return RT_STRING;
  23. int LS_XX = 0;
  24. int LS_YY = 0;
  25. string ZH_STR = "";
  26. int STR_LEN = obj_string.Length;
  27. string FORMAT_STR = arg_keystr;
  28. try
  29. {
  30. if (add_expr == 0)//ADD加密
  31. {
  32. if (obj_string == "")
  33. return "3003003003";
  34. for (LS_YY = 0; LS_YY < (STR_LEN / FORMAT_STR.Length) + 1; LS_YY++)
  35. ZH_STR += FORMAT_STR;//67896789
  36. for (LS_XX = 0; LS_XX < STR_LEN; LS_XX++)
  37. {
  38. RT_STRING += (999 - (int)Math.Pow(int.Parse(ZH_STR.Substring(LS_XX, 1)), 2) * 9 - (int)obj_string.Substring(LS_XX, 1)[0]).ToString();
  39. }
  40. RT_STRING = ReverseString(RT_STRING);
  41. //if( RT_STRING == "")
  42. // RT_STRING = "3003003003";
  43. }
  44. else//EXPR解密
  45. {
  46. if (obj_string == "3003003003")
  47. return "";
  48. for (LS_YY = 0; LS_YY < ((STR_LEN / 3) / FORMAT_STR.Length) + 1; LS_YY++)
  49. ZH_STR += FORMAT_STR;
  50. obj_string = ReverseString(obj_string);
  51. for (LS_XX = 0; LS_XX < STR_LEN / 3; LS_XX++)
  52. {
  53. if (int.Parse(obj_string.Substring(LS_XX * 3, 3)) == 0)
  54. {
  55. //int1 = int.Parse(obj_string.Substring(LS_XX * 3, 3)) * 13;
  56. //RT_STRING += int1.ToString();
  57. RT_STRING += (int.Parse(obj_string.Substring(LS_XX * 3, 3)) * 13).ToString();
  58. }
  59. else
  60. {
  61. RT_STRING += Convert.ToChar(999 - (int)Math.Pow(int.Parse(ZH_STR.Substring(LS_XX, 1)), 2) * 9 - int.Parse(obj_string.Substring(LS_XX * 3, 3)));
  62. }
  63. }
  64. }
  65. }
  66. catch
  67. {
  68. RT_STRING = "";
  69. }
  70. return RT_STRING;
  71. }
  72. public static string GetEntrypt(string obj_string, int add_expr)
  73. {
  74. string arg_keystr = "182457512398663";
  75. string RT_STRING = "";
  76. //if (obj_string == null || obj_string == "" || arg_keystr.Length == 0)
  77. if (obj_string == null )
  78. return RT_STRING;
  79. int LS_XX = 0;
  80. int LS_YY = 0;
  81. string ZH_STR = "";
  82. int STR_LEN = obj_string.Length;
  83. string FORMAT_STR = arg_keystr;
  84. try
  85. {
  86. if (add_expr == 0)//ADD加密
  87. {
  88. if (obj_string == "")
  89. return "3003003003";
  90. for (LS_YY = 0; LS_YY < (STR_LEN / FORMAT_STR.Length) + 1; LS_YY++)
  91. ZH_STR += FORMAT_STR;//67896789
  92. for (LS_XX = 0; LS_XX < STR_LEN; LS_XX++)
  93. {
  94. RT_STRING += (999 - (int)Math.Pow(int.Parse(ZH_STR.Substring(LS_XX, 1)), 2) * 9 - (int)obj_string.Substring(LS_XX, 1)[0]).ToString();
  95. }
  96. RT_STRING = ReverseString(RT_STRING);
  97. }
  98. else//EXPR解密
  99. {
  100. if (obj_string == "3003003003")
  101. return "";
  102. for (LS_YY = 0; LS_YY < ((STR_LEN / 3) / FORMAT_STR.Length) + 1; LS_YY++)
  103. ZH_STR += FORMAT_STR;
  104. obj_string = ReverseString(obj_string);
  105. for (LS_XX = 0; LS_XX < STR_LEN / 3; LS_XX++)
  106. {
  107. if (int.Parse(obj_string.Substring(LS_XX * 3, 3)) == 0)
  108. {
  109. //int1 = int.Parse(obj_string.Substring(LS_XX * 3, 3)) * 13;
  110. //RT_STRING += int1.ToString();
  111. RT_STRING += (int.Parse(obj_string.Substring(LS_XX * 3, 3)) * 13).ToString();
  112. }
  113. else
  114. {
  115. RT_STRING += Convert.ToChar(999 - (int)Math.Pow(int.Parse(ZH_STR.Substring(LS_XX, 1)), 2) * 9 - int.Parse(obj_string.Substring(LS_XX * 3, 3)));
  116. }
  117. }
  118. }
  119. }
  120. catch
  121. {
  122. RT_STRING = "";
  123. }
  124. return RT_STRING;
  125. }
  126. private static string ReverseString(string S)
  127. {
  128. string tS = "";
  129. for (int i = S.Length - 1; i >= 0; i--)
  130. tS = tS + S.Substring(i, 1);
  131. return tS;
  132. }
  133. public static string dEncrypt(string obj_string, string obj_wkeystring, ref string obj_rkeystring)
  134. {
  135. string enstr = "";
  136. string rtstr = "";
  137. long key = 0;
  138. key = long.Parse(obj_wkeystring);
  139. key = (long)Math.Sqrt(key);
  140. obj_rkeystring = key.ToString();
  141. for (int i = 0; i < (obj_string.Length / obj_rkeystring.Length) + 1; i++)
  142. enstr += obj_rkeystring;
  143. enstr = ReverseString(enstr);
  144. for (int i = 0; i < obj_string.Length; i++)
  145. rtstr += (500 - (int)Math.Pow(int.Parse(enstr.Substring(i, 1)), 2) * 3 - (int)obj_string.Substring(i, 1)[0]).ToString();
  146. return rtstr;
  147. }
  148. public static string dUnencrypt(string obj_string, string obj_keystring)
  149. {
  150. string enstr = "";
  151. string rtstr = "";
  152. long key = 0;
  153. key = long.Parse(obj_keystring);
  154. key = (long)Math.Pow(key, 2);
  155. for (int i = 0; i < ((obj_string.Length ) / (obj_keystring.Length * 3 )) + 1; i++)
  156. enstr += obj_keystring;
  157. enstr = ReverseString(enstr);
  158. for (int i = 0; i < obj_string.Length / 3; i++)
  159. {
  160. if (int.Parse(obj_string.Substring(i * 3, 3)) == 0)
  161. {
  162. rtstr += (int.Parse(obj_string.Substring(i * 3, 3)) * 9).ToString();
  163. }
  164. else
  165. {
  166. rtstr += Convert.ToChar(500 - (int)Math.Pow(int.Parse(enstr.Substring(i, 1)), 2) * 3 - int.Parse(obj_string.Substring(i * 3, 3)));
  167. }
  168. }
  169. return rtstr;
  170. }
  171. }
  172. }