Dupa mii de autentificari cu acelasi cont (utilizator si parola), de mai multe ori pe zi, pe diverse dispozitive, 7 zile din 7, am inceput sa ma cam plictisesc ;)
Cum tot aveam la indemana noua placa AVR-T32U4 de la Olimex, compatibila cu Arduino Leonardo, m-am hotarat sa o utilizez pentru autentificare cu contul meu de Facebook... cu doar doua apasari de buton...
Pentru asta este suficienta placa si un cablu USB de conectare. Breadboardul pe care il vedeti in poza de mai jos e pus doar pentru ca imi place cum arata :D
/* Autentificare cu user si parola. Total nesigur... oricine are acces, fara nici o verificare ;) @2012 by http://ro-duino.blogspot.com/ This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Bazat pe exemplul de la Olimex http://olimex.com/dev/avr-t32u4.html */ #define BUTTONINIT DDRE &= ~(1<<2) #define BUTTONSTATE ((PINE & B00000100) != 0) int previousButtonState = HIGH; // for checking the state of a pushButton int counter = 0; // button push counter void setup() { BUTTONINIT; } void loop() { int buttonState = BUTTONSTATE; if ((buttonState != previousButtonState) && (buttonState == HIGH)) { switch (counter) { case 0: Keyboard.print("iardsoft@yahoo.com\t"); // TAB-ul de dupa email ne trece la campul de parola counter = 1; break; case 1: Keyboard.println("Aici-Pun-Parola"); // ENTER-ul de la println realizeaza autentificarea counter = 0; break; } } previousButtonState = buttonState; }
Functionarea este extrem de simpla. Deschidem in browser pagina pe care dorim sa ne autentificam si verificam sa fie cursorul in campul unde trebuie introdusa adresa de email:
Apasam butonul marcat "BUT" de pe placa. Adresa de email este acum completata si am trecut pe campul urmator, cel de parola.
Apasam din nou butonul "BUT" si gata, ne-am autentificat ;)
AVERTISMENT: solutia nu este sigura absolut de loc! Oricine are acces la placa are acces si la cont! Posibile imbunatatiri: adaugarea unei tastaturi numerice si utilizarea unui cod PIN; criptarea datelor; stergerea informatiilor de autentificare dupa 3 incercari nereusite de introducere a PNI-ului, ecran LCD, mai multe conturi etc.
Edit: daca cele doua campuri (utilizator si parola) sunt in ordine, adica daca ne putem deplasa intre utilizator si parola cu tasta TAB, codul merge modificat pentru a se realiza autentificarea cu o singura apasare de buton.
void loop() { int buttonState = BUTTONSTATE; if ((buttonState != previousButtonState) && (buttonState == HIGH)) { Keyboard.print("iardsoft@yahoo.com\t"); // TAB-ul de dupa email ne trece la campul de parola Keyboard.println("Aici-Pun-Parola"); // ENTER-ul de la println realizeaza autentificarea } previousButtonState = buttonState; }