Показать сообщение отдельно
  #4 (permalink)  
Старый 08.07.2019, 04:37
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

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")));
}

Последний раз редактировалось Malleys, 08.07.2019 в 04:50.
Ответить с цитированием