ademosh

js 5

Mar 9th, 2020
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. const ruArr = ['а', 'б', 'в', 'г', 'д', 'е|ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я'];
  2. const shiftedArr = ruArr.slice(16, 32);
  3.  
  4. const table = {};
  5. const lengthPerRow = 16;
  6. const buildModRow = (symbolsArr, index, lenght) => {
  7. if (index % 2 === 0) {
  8. return (symbolsArr.slice(0, 16));
  9. } else {
  10. if (index === 1) {
  11. return [...shiftedArr];
  12. }
  13. let k = 15;//шаг
  14. for (i = 0; i < k; i++) {
  15. shiftedArr.unshift(shiftedArr.pop());
  16. }
  17. return [...shiftedArr];
  18. }
  19.  
  20. }
  21.  
  22. ruArr.forEach((letter, index) => {
  23. const rowI = buildModRow(ruArr, index, lengthPerRow);
  24. table[letter] = rowI;
  25. })
  26. const arrFromTable = Object.keys(table).map((letter) => [letter,table[letter]]);
  27. //console.log(arrFromTable);
  28.  
  29. let cryptogramma='';
  30. let key='абвг';
  31. let message='е';
  32. const isEven = (num) => {
  33. return num%2===0 ? true:false;
  34. }
  35. for (let i=0;i<message.length;++i) {
  36. //message[i]-символ сообщения
  37. //key[i%key.length]-символ ключа
  38. let indexOfKeySymbol=ruArr.indexOf(key[i%key.length]);
  39. console.log(ruArr.indexOf(key[i%key.length])+1)
  40. console.log(arrFromTable[indexOfKeySymbol][1]);
  41. let indexOfTextSymbol;
  42. console.log(arrFromTable[indexOfKeySymbol][1].indexOf(message[i]));
  43. indexOfTextSymbol=arrFromTable[indexOfKeySymbol][1].indexOf(message[i]);
  44. console.log(indexOfTextSymbol);
  45. if (indexOfTextSymbol===-1) {
  46. {
  47. if (isEven(indexOfKeySymbol)) {
  48. indexOfTextSymbol=arrFromTable[indexOfKeySymbol+1][1].indexOf(message[i]);
  49. console.log('two');
  50. cryptogramma=cryptogramma+arrFromTable[indexOfKeySymbol][1][indexOfTextSymbol];
  51. } else {
  52. indexOfTextSymbol=arrFromTable[indexOfKeySymbol-1][1].indexOf(message[i]);
  53. console.log('three');
  54. cryptogramma=cryptogramma+arrFromTable[indexOfKeySymbol][1][indexOfTextSymbol];
  55. }
  56. }
  57. } else {
  58. if (isEven(indexOfKeySymbol)) { cryptogramma=cryptogramma+arrFromTable[indexOfKeySymbol+1][1][indexOfTextSymbol];
  59. } else { cryptogramma=cryptogramma+arrFromTable[indexOfKeySymbol-1][1][indexOfTextSymbol];
  60. }
  61. }
  62. console.log(`${indexOfKeySymbol} ${indexOfTextSymbol} ${message[i]}`);
  63. // console.log(ruArr[ruArr.indexOf(key[i%key.length])]);
  64. }
  65.  
  66. console.log(cryptogramma);
Add Comment
Please, Sign In to add comment