Я сделал свой алгоритм проверки, но не уверен, что он хороший. ... Я лишь уточняю, хороший ли мой алгоритм, правильно ли выполняет свою задачу и можно ли как-то его улучшить.
/* Типа так:
let fun = c => c ^ 6;
let enc = toCode('Hello World!', fun);
let dec = fromCode(enc, fun);
console.log(enc);
console.log(dec);
*/
let radix = 16; // ONLY FOR DEBUG. DEFAULT: 16
function toCode(str, alg) {
let ns = '';
for (let i = 0; i < str.length; i++) {
ns += alg(+str.charCodeAt(i)).toString(radix);
if (i < str.length - 1) ns += ' ';
}
return ns;
}
function fromCode(str, alg) {
let ns = '';
let encArr = str.split(' ');
for (let i = 0; i < encArr.length; i++) {
ns += String.fromCharCode(alg(parseInt(encArr[i], radix)));
}
return ns;
}