Шифрование

  1. Всё ещё делаю, позже дам исходник
  2. Придуманное мной

Всё ещё делаю, позже дам исходник

позже дам исходник

Придуманное мной

Как бы чел ничего не может придумать, только соединить то, что видел.. Это шифрование не идеально, так как можно подобрать ключ. Принцип:
console.clear(); h7crypt = ( text = 'test', key = '1234567.Hii.Hello..', crypt_bool = false, reckoning = 36, delimiter = '_' ) => { if(!(typeof reckoning === 'number' && String(reckoning).split('.')[1] === undefined)) reckoning = 36; delimiter = String(delimiter); crypt_bool = Boolean(crypt_bool); text = String(text); key = String(key); let key_array = []; // Key to big array number { // 'bacad' => [93:1, 92:2, 94:1, 95:1] // [93:1, 92:2, 94:1, 95:1] => max_char = 92 let array_char = key.split(''), array_char_count = {}, max = 0, max_char = ''; delete key; for(let i in array_char){ let char_number = Number(array_char[i].charCodeAt()); array_char[i] = char_number; if(array_char_count[char_number] === undefined) array_char_count[char_number] = 1; else array_char_count[char_number]++; if(array_char_count[char_number] > max){ max = array_char_count[char_number]; max_char = char_number; } } //console.log('array_char_count', array_char_count); //console.log('max_char', max_char); delete array_char_count; delete max; // [93, 92, 94, 95] => array_array_number = [[93], [94, 95]] let array_array_number = [], i0 = 0, index_array = [], index_array_max = [] for(let i in array_char){ if(array_char[i] === max_char){ if(array_array_number[i0] !== undefined) i0++; continue; } if(array_array_number[i0] === undefined){ array_array_number[i0] = [array_char[i]]; index_array[i0] = 0; index_array_max[i0] = 1; }else{ array_array_number[i0].push(array_char[i]); index_array_max[i0]++; } } delete max_char; delete array_char; delete i0; //console.log('array_array_number', array_array_number); // [[2, 2], [3, 3, 3]] => key_array = [5, 5, 5, 5, 5, 5] let repeat = 1; while(repeat === 1){ let sum = 0; repeat = 0; for(let i in array_array_number){ sum += array_array_number[i][index_array[i]]; index_array[i]++; if(index_array[i] >= index_array_max[i]) index_array[i] = 0; else repeat = 1 } key_array.push(sum); } delete repeat; //console.log('key_array', key_array); } // Text and key_array if(crypt_bool) return text.split('').map((char0, i) => { if(i >= key_array.length) i %= key_array.length; return (char0.charCodeAt() + key_array[i]).toString(reckoning); }).join(delimiter); return text.split(delimiter).map((char0, i) => { if(i >= key_array.length) i %= key_array.length; return String.fromCharCode(parseInt(char0, reckoning) - key_array[i]); }).join(''); } h7crypt('привет', 'bacaddad3', true); h7crypt('158_13w_151_13i_14y_13y', 'bacaddad3', false);