Arhitector, при объединении двух строк без известного разделителя, логин и пароль не получится однозначно обратно получить.
Сообщение от 0m4n
|
преобразует ее 7 раз
|
только один раз!
Вместо объединения строк, вы можете записать их в массив.
Ваши вычисления можно сократить!
{
const encode = (login, passwd) => JSON.stringify([login, passwd]).split("")
.map(v => (10 * v.codePointAt() + 2).toString(2).padStart(16, "0").replace(/0/g, "!").replace(/1/g, "."))
.join("")
const decode = str => JSON.parse(str
.replace(/\!/g, "0").replace(/\./g, "1").split(/(.{16})/)
.reduce((m, v) => (v ? m.push(String.fromCharCode(parseInt(v, 2) / 10 | 0)) : 0, m), [])
.join(""))
// Проверка
alert(decode(encode("codeby.", "netWAPT2019")));
}