HHIDE_DUMP
Гость
H
HHIDE_DUMP
Гость
Доброго всем времени суток!
В данной статье мы самостоятельно сделаем свой собственный аппаратный менеджер паролей на платформе Arduino и в среде разработке Borland Delphi 7.
Внимание! В данной статье будет рассмотрен простой пример. Никаких хитрых и умных алгоритмов коммуникации рассматривать не будем. Это пример, основа, для тех кто желает что-то все таки сделать на ардуино. Возможно в следующих статьях мы переделаем эту игрушку в боевой вариант.
Что это собственно такое, аппаратный менеджер паролей?
Для начала, собственно, разберем схему работы.
*Да, не очень то понятно...
Теперь прокомментирую эту убогую схему.
) Я это к тому, что эти моменты очень важны и для нормального менеджера такая реализация недопустима.
Приступим к написанию кода. Я начну с прошивки, буду выкладывать по куску кода и комментировать.
На очереди у нас написание Delphi кода и собственно создание какого-то интерфейса для работы со всем этим.
Тут рассказывать особо нечего, рассмотрим только основные моменты.
Кидаем на форум компонент ListBox для последующего удобного выбора аккаунта, компонент ComPort, кнопку и поле для поиска. У меня получилось как-то так:
На картинке видно наглядную карту ячеек памяти. Первые 4 я выделил для хранения адреса следующей свободной ячейки (переменная currentNum). Начиная с 5-ой ячейки мы видим начало записи кодов символов. В качестве символа окончания строки (терминатор строки) я выбрал использовать единицу. Таким образом, для поиска нужного нам пароля по ИД нам фактически придется пройтись и посчитать количество единиц, а затем получить нужную строку. Ниже будет приведен код такой реализации.
Запись в следующую EEPROM ячейку. (с обновлением значения currentNum дикий говнокод, как говориться "my eyes are bleeding". Не советую так никогда делать
)
Получение пароля по его ID в памяти:
* Как я уже говорил, здесь мы подсчитываем количество терминаторов строки и таким образом получаем адрес начала нужного нам пароля...
По большому счету с прошивкой у нас все. Вот полный код:
На очереди у нас написание Delphi кода и собственно создание какого-то интерфейса для работы со всем этим.
Тут рассказывать особо нечего, рассмотрим только основные моменты.
Кидаем на форум компонент ListBox для последующего удобного выбора аккаунта, компонент ComPort, кнопку и поле для поиска. У меня получилось как-то так:
Форма добавления аккаунта:
Обработчик кнопки "Добавить аккаунт":
Внимание. Я использовал дополнительные компоненты CoolTrayIcon, AlphaSkins, ComPort. Они нужны для открытия проекта.
Всем спасибо за внимание и трату своего времени для чтения этого бреда
В данной статье мы самостоятельно сделаем свой собственный аппаратный менеджер паролей на платформе Arduino и в среде разработке Borland Delphi 7.
Внимание! В данной статье будет рассмотрен простой пример. Никаких хитрых и умных алгоритмов коммуникации рассматривать не будем. Это пример, основа, для тех кто желает что-то все таки сделать на ардуино. Возможно в следующих статьях мы переделаем эту игрушку в боевой вариант.
Что это собственно такое, аппаратный менеджер паролей?
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
- Пакет драйверов для поддержки вашей платы.
- Borland Delphi 7 + Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!.
Для начала, собственно, разберем схему работы.
*Да, не очень то понятно...
Теперь прокомментирую эту убогую схему.
- Для записи паролей на хранение мы будем просто отсылать их в открытом(!) виде через COM порт.
- Для получения пароля мы будем отсылать в открытом(!) виде ID записи нужного нам пароля. Arduino получит ID, опросит EEPROM, найдет нужную нам запись и через заюзанную нами библиотеку Keyboard.h сэмулирует нажатие клавиш на клавиатуре, тем самым введя нужный нам пароль.
Приступим к написанию кода. Я начну с прошивки, буду выкладывать по куску кода и комментировать.
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
На очереди у нас написание Delphi кода и собственно создание какого-то интерфейса для работы со всем этим.
Тут рассказывать особо нечего, рассмотрим только основные моменты.
Кидаем на форум компонент ListBox для последующего удобного выбора аккаунта, компонент ComPort, кнопку и поле для поиска. У меня получилось как-то так:
На картинке видно наглядную карту ячеек памяти. Первые 4 я выделил для хранения адреса следующей свободной ячейки (переменная currentNum). Начиная с 5-ой ячейки мы видим начало записи кодов символов. В качестве символа окончания строки (терминатор строки) я выбрал использовать единицу. Таким образом, для поиска нужного нам пароля по ИД нам фактически придется пройтись и посчитать количество единиц, а затем получить нужную строку. Ниже будет приведен код такой реализации.
Запись в следующую EEPROM ячейку. (с обновлением значения currentNum дикий говнокод, как говориться "my eyes are bleeding". Не советую так никогда делать
Код:
// Writing EEPROM string
if (command.length() + currentNum < 1020)
{
for (int i = 0; i < command.length(); i++) {
EEPROM[currentNum + i] = int(command);
}
EEPROM[command.length() + currentNum] = 1; // String terminator
currentNum = currentNum + command.length()+1;
if (currentNum > 255)
{
if (currentNum > 510) {
if (currentNum > 765) {
EEPROM[0] = 255;
EEPROM[1] = 255;
EEPROM[2] = 255;
EEPROM[3] = currentNum - 765;
} else {
EEPROM[0] = 255;
EEPROM[1] = 255;
EEPROM[2] = currentNum - 510;
}
} else {
EEPROM[0] = 255;
EEPROM[1] = currentNum - 255;
}
} else {
EEPROM[0] = currentNum;
}
Serial.println(1);
} else {
Serial.println(0);
}
Код:
String getById(int index)
{
String result = "";
int tmpID = 0;
for (int i = 4; i < currentNum; i++)
{
if (tmpID == index)
{
result.concat((char)EEPROM);
if (EEPROM == 1) break;
}
else
{
if (EEPROM == 1) tmpID++;
}
}
return result;
}
По большому счету с прошивкой у нас все. Вот полный код:
На очереди у нас написание Delphi кода и собственно создание какого-то интерфейса для работы со всем этим.
Тут рассказывать особо нечего, рассмотрим только основные моменты.
Кидаем на форум компонент ListBox для последующего удобного выбора аккаунта, компонент ComPort, кнопку и поле для поиска. У меня получилось как-то так:
Форма добавления аккаунта:
Обработчик кнопки "Добавить аккаунт":
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Внимание. Я использовал дополнительные компоненты CoolTrayIcon, AlphaSkins, ComPort. Они нужны для открытия проекта.
Всем спасибо за внимание и трату своего времени для чтения этого бреда