• Как правильно организовать авторизацию в node.js?

    Revencu
    @Revencu
    1. Сначала сделайте простой запрос (без авторизации) для получения произвольного кода (на сервере генерируем случайный ключ и возвращаем)
    2. Полученный ключ (code) кодируем на клиенте через SHA256 (code+username+password)
    3. Делаем запрос авторизации отправляя шифрованный код
    4. На Сервере проверяем в базе комбинацию SHA256(ключ+полеUSER+полеPASSWORD). Если нашли - Вуаля! и убиваем ключ

    Таким образом будет отправляться всегда новый код для авторизации и снифферы не уловят ваши данные.
    Ответ написан
    Комментировать
  • Как обработать массивы?

    erge
    @erge
    Примус починяю
    const al   = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЫЬЭЮЯ "; // Алфавит
    let key1 = "ПЕРВЫЙ"; // первый ключ
    let key2 = "БУКВА"; // второй ключ
    let open_str = "ЭТО СТРОКА ОТКРЫТОГО ИСХОДНОГО ТЕКСТА"; // кодируемый текст
    
    // т.к. в алфавите нет букв Й и Ъ, то производим соответствующую замену:
    key1 = key1.replace("Й","И").replace("Ъ","Ь");
    key2 = key2.replace("Й","И").replace("Ъ","Ь");
    open_str = open_str.replace("Й","И").replace("Ъ","Ь");
    
    // кодируем текст
    let encoded_str = ([...open_str]).map( (e,i) => al[(al.indexOf(e) + al.indexOf(key1[i%key1.length]) + al.indexOf(key2[i%key2.length])) % 32] ).join("");
    
    console.log(encoded_str);


    PS:
    к строке по сути можно обращаться как к массиву - str[index]
    про .map смотрим здесь - https://developer.mozilla.org/en-US/docs/Web/JavaS...
    если вам надо прям вот на МАССИВАХ, то просто сделайте соответствующие переменные "массивами"
    строку в массив можно разбить так str.split("") или [...str]

    по скрипту
    al - строка / массив букв алфавита
    al.indexOf(char) - получаем индекс буквы в алфавите
    по выбору символа из ключа - т.к. ключ у нас заитерирован, то берем остаток от деления индекса кодируемого символа на длину ключа , это и будет символ из ключа - key1[i%key1.length], далее получаем его код по алфавиту - al.indexOf(key1[i%key1.length])

    и у вас много ошибок в таблице, например в третьей строке - конечный символ не И, а З
    и т.д.

    Ответ написан
    Комментировать
  • Зачем нужен веб-сервер?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Для возможности локальной работы и синхронизации клиентского приложения с сервером.
    Или для создания некого единого интерфейс-модуля ("враппер"/прослойка) для взаимодействия с каким-либо оборудованием через API-интерфейс посредством сетевых протоколов.
    Ответ написан
    Комментировать
  • Зачем нужен веб-сервер?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Чтобы отдавать клиенту контент какой-то. Если у вас нет веб-сервера - то вы не можете создать веб-приложение и отвечать на запросы клиента по HTTP-протоколу.

    Пишут свои потому, что не всегда готовое подходит. По разным самым причинам. Проекты бывают специфичные, под них затачиваются собственные сервера.

    https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%...
    Ответ написан
    Комментировать