Advertisement
Guest User

Nasty

a guest
Dec 14th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. var str = '';
  2. var fso = new ActiveXObject("Scripting.FileSystemObject");
  3. var ts = fso.OpenTextFile(WSH.Arguments(1));
  4. while(!ts.AtEndOfStream)
  5. str+=ts.ReadLine();
  6. ts.Close();
  7.  
  8. function caesarShift (str, amount, alph_len)
  9. {
  10. if (amount < 0)
  11. {
  12. amount = amount + alph_len;
  13. }
  14.  
  15. var output = '';
  16.  
  17. for (var i = 0; i < str.length; i ++)
  18. {
  19. var c = str.charAt(i);
  20.  
  21. if (c.match(/[a-z]/i))
  22. {
  23. var code = str.charCodeAt(i);
  24.  
  25.  
  26. if ((code >= 65) && (code <= 90))
  27. {
  28. code += 32;
  29. }
  30.  
  31. c = String.fromCharCode(((code - 97 + amount) % alph_len) + 97);
  32. }
  33.  
  34. output += c;
  35. }
  36. return output;
  37. };
  38.  
  39. //WSH.echo(caesarShift('abcbbac', 2, 3));
  40.  
  41. var freq = new Array();
  42. var input = '';
  43. var ts = fso.OpenTextFile(WSH.Arguments(0));
  44. while(!ts.AtEndOfStream)
  45. {
  46. input += ts.ReadLine();
  47. input += ' ';
  48. }
  49. ts.Close();
  50.  
  51. var array = input.split(' ');
  52.  
  53. j = 0;
  54. while(j < array.length-1)
  55. {
  56. freq[array[j].charCodeAt(0)+32] = array[j+1];
  57. j+=2;
  58. }
  59.  
  60. /*for (var e in freq)
  61. WSH.echo(e+ ' ' + freq[e]);*/
  62.  
  63. function make_freq(str)
  64. {
  65. var result = new Array();
  66. var count = 0;
  67. for (var t = 0; t < str.length; t++)
  68. {
  69. var c = str.charAt(t);
  70. if (c.match(/[a-z]/i))
  71. {
  72. result[c.charCodeAt(0)] = 0;
  73. count++;
  74.  
  75. }
  76. }
  77.  
  78. for (var t = 0; t < str.length; t++)
  79. {
  80. var c = str.charAt(t);
  81. if (c.match(/[a-z]/i))
  82. {
  83. result[c.charCodeAt(0)]++;
  84. }
  85. }
  86.  
  87. for (var e in result)
  88. {
  89. result[e] = result[e] /count *100;
  90. }
  91. return result;
  92. }
  93. /*var r = make_freq('abab');
  94. for (var e in r)
  95. WSH.echo(e+ ' ' + r[e]);*/
  96.  
  97. function min(arr)
  98. {
  99. min = arr[0];
  100. index = 0;
  101. WSH.echo(arr.length);
  102. for (var e = 0; e<arr.length; e++)
  103. {
  104. WSH.echo(arr[e]);
  105. if (arr[e] < min)
  106. {
  107. min = arr[e];
  108. index = e;
  109. }
  110. }
  111. return index;
  112. }
  113. function caesarDescription(str, alph_len)
  114. {
  115. var fact_freq = make_freq(str);
  116. for (var e in fact_freq)
  117. WSH.echo(e+ ' ' + fact_freq[e])
  118. for (var e in freq)
  119. WSH.echo(e+ ' ' + freq[e])
  120. var arr = new Array();
  121. for (var shift = 0; shift < alph_len; shift++)
  122. {
  123. sum = 0;
  124. for (var j = 0; j< alph_len; j++)
  125. {
  126. sum += Math.pow((fact_freq[97+j] - freq[(97+j+shift)%alph_len]),2);
  127. }
  128. arr.push(sum);
  129. }
  130. WSH.echo(arr.join(' '));
  131. var new_shift = min(arr);
  132. WSH.echo(new_shift);
  133. var out = '';
  134. for (var i =0; i<str.length; i++)
  135. {
  136. out += String.fromCharCode(str.charCodeAt(i)+new_shift);
  137. }
  138. return out;
  139. }
  140.  
  141. var shift_str = caesarShift(str, 4, 26);
  142. //WSH.echo(shift_str);
  143. var descr_str = caesarDescription(shift_str, 26);
  144. //WSH.echo(descr_str);
  145. var ts = fso.OpenTextFile(WSH.Arguments(2), 2);
  146. ts.WriteLine(descr_str);
  147. ts.Close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement