Перейти к публикации
iT4iT.CLUB

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 26.01.2016 во всех областях

  1. 1 балл
    Ко мне обратился товарищ с просьбой уменьшить размер данного скетча т.к. места в его проекте уже совсем нет, а авторизация необходима как воздух. Мое мнение, что стоило бы сменить контроллер, было отвергнуто в силу долгого ожидание посылки из поднебесной и хочется прямо здесь и сейчас. Необходимо выбросить лишнее и сэкономить крошки на ATmega328p устанавливаемой в Arduino UNO / NANO Компилируем изначальный скетч (под чип W5100) и смотрим, сколько он весит, это будет отправной точно. Sketch uses 15 908 bytes (49%) of program storage space. Maximum is 32 256 bytes. Global variables use 524 bytes (25%) of dynamic memory, leaving 1 524 bytes for local variables. Maximum is 2 048 bytes В ходе быстрого кромсания выкидываем: библиотеку Base64, функцию auth_update() и все переменные, связанные с авторизацией. Хочу заметить, что изначально подразумевалось все это использовать для возможности изменять учетные данные в Web морде и хранить их в EEPROM. В угоду экономии места логин и пароль будет жестко задан в программе. Проверка авторизации осуществляется в 40 строке кода, в неё же зашит хэш Base64 - login:password if (readString.lastIndexOf(F("Authorization: Basic bG9naW46cGFzc3dvcmQ="))>-1) { После повторно компилируем программу и сравниваем вес. Sketch uses 14 756 bytes (45%) of program storage space. Maximum is 32 256 bytes. Global variables use 414 bytes (20%) of dynamic memory, leaving 1 634 bytes for local variables. Maximum is 2 048 bytes Получаем экономию: Скетч уменьшился на 4%, что составляет 1152 байта Оперативка освободилась на 5%, что составляет 110 байт Не густо, но этого оказалось достаточно, по этой же причине данный пост получил право на жизнь. Остается только придумать логин и пароль и самостоятельно получить из них хеш Base64, а затем вписать его в скетч. Напоминаю, что логин и пароль пишутся одной строкой через разделитель двоеточие ":". Если для примера взять логин Admin, а пароль СhIcKeN, то должна получится строка Admin:СhIcKeN Пишем её в наш online конвертер Base64 и получаем на выходе необходимый нам хеш QWRtaW46Q2hJY0tlTg== Base64 online converter Текст в Base64 (encode) Base64 в Текст (decode) PS: идея онлайн конвертера Base64 взята с сайта http://webtoolkit.info, в связи с этим я обязан разместить на них ссылку.
×
×
  • Создать...