Treceți la conținutul principal

Postări

Criptografie (2) - Algoritmul RC4

Introducere RC4   RC4 a fost dezvoltat de Ronald Levitt în 1987. Deși numele său oficial este „Rivest Cipher 4”, acronimul RC poate fi înțeles și ca „Codul lui Ron”.     RC4 este o tehnologie foarte populară de criptare a fluxurilor. Deoarece criptarea și decriptarea folosesc aceeași cheie secretă, este un algoritm de criptare simetric . Mai mult, lungimea datelor rămâne neschimbată înainte și după criptarea RC4. Nu există grupare și blocare și nu este nevoie să adăugați octeți. Prin urmare, are mari avantaje în domeniul transmisiei de date. Vulnerabilități  RC4 este deosebit de vulnerabil atunci când începutul fluxului de chei de ieșire nu este eliminat. RC4-dropN, fiind N un multiplu de 256 este o îmbunătățire pentru a rezolva această problemă. De asemenea, este vulnerabil atunci când sunt utilizate chei non-aleatoare sau asociate, deoarece poate duce la un sistem foarte nesigur, cum ar fi WEP.  Implementare pas cu pas Pentru a explica lucrurile simplu, RC4 se bazează pe acest
Postări recente

Top ten poor man habits

Top ten poor man habits  1. Getting comfortable being in debt     2. Not paying yourself first     3. Not having a backup fund    4. Not clearly knowing your income or expenses     5. Paying too much tax     6. Having expensive past times or hobbies  7. Not investing when you should     8. Keeping the "dripping tap" on     9. Not caring about finances   10. Believing money (or people who have it) is evil   Based on The Richest Man in Babylon: The Complete Original Edition de George S. Clason       Back to top of page

Programming Quotes

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.         — C.A.R. Hoare, The 1980 ACM Turing Award Lecture The computing scientist’s main challenge is not to get confused by the complexities of his own making.         — E. W. Dijkstra The cheapest, fastest, and most reliable components are those that aren’t there.         — Gordon Bell One of my most productive days was throwing away 1000 lines of code.         — Ken Thompson When in doubt, use brute force.         — Ken Thompson Deleted code is debugged code.         — Jeff Sickel Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.         — Brian W. Kernighan and P. J. Plauger in The Elements of Programming Style. The most effective debugging

Erorile programelor de calcul

    Sa greşeşti este uman, dar ca sa zăpăceşti de tot lucrurile ai nevoie de un calculator.     Un program de calcul face ceea ce ii ceri, nu ceea ce ai vrea tu sa-ti facă.     Valoarea unui program este direct proporţionala cu greutatea listingului.     Complexitatea unui program va creste până va depăşi capacitatea de înţelegere a operatorului care trebuie sa lucreze cu el.     Descoperirea unei erori intr-un program de calcul se face abia după ce programul a fost folosit câteva luni de zile.     Orice program de calcul ajuns in fata de rulare este depăşit.     Orice program de calcul costa mai mult si necesita mai mult timp decât s-a considerat iniţial.     Daca un program este util, va trebui schimbat. Daca nu mai este util va trebui sa fie justificat.     Orice program se va extinde pentru a ocupa întreagă memorie disponibila a calculatorului.     Daca pentru introducerea corecta a datelor in calculator s-au prevăzut o serie de teste, se va găsi un idiot ingenios care va descop

Principiile de bază ale ingineriei

     Maşinile ar trebui sa lucreze, iar oamenii sa gândească.     Când ai încercat totul si nimic nu a mers, citeşte instrucţiunile de folosire.     Ca sa funcţioneze, trebuie sa introduci ştecherul în priza.     Nu forţa. Foloseşte un ciocan mai mare.     Experienţa variază direct proporţional cu echipamentul distrus.     Fiabilitatea unei maşini este invers proporţionala cu numărul persoanelor care privesc la asamblarea ei.     Mai devreme, sau mai târziu, pot sa apară cele mai defavorabile condiţii de exploatare. Deci toate sistemele trebuie proiectate astfel, încât sa reziste la cele mai defavorabile condiţii de exploatare.     Echipamente identice, testate cu bine in mod identic, se vor comporta in mod diferit in industrie.     Maşinile care se defectează pornesc de cele mai multe ori când apare personalul de reparaţie.     Părţile interschimbabile ale unui echipament nu vor putea fi schimbate intre ele, fiindcă nu se potrivesc.     Orice schimbare de proiect va fi solicitata du

Bancuri furate

Resturi Ardeleanul soseste cu întârziere la împartirea darurilor, iar Dumnezeu îi spune amarât: - Îmi pare rau de tine, nu mi-a mai ramas decât frumusetea si prostia, fiule, ce sa-ti fac? Alege-ti. - Apai, Doamne, frumusetea-i trecatoare.   Asa sunt ei, mai înceti... În Ardeal se striga vecinii de pe-un deal pe celalalt: - Maaa...vecinee!... - Care-i baiu maaa?... - Tu ce-ai dat la vaca ta când o fost beteaga? - "Fotoghin" maaa!... Trece o saptamâna... - Maaa...vecinee! - Ce-i baiu maaa...? - D-apoi ce-ai zis c-ai dat la vaca ta când o fost beteaga? - "Fotoghin" maaa... - Pai da' vaca mea o murit mai!... - Si-a mea maaa...   Motive Î: De ce umbla ardelenii cu scara dupa ei? R: Pentru ca sunt prosti de dau în gropi. Ardelenii si Stefan cel Mare Stefan cel Mare: Cum te cheama, fiu de dac? Ardeleanul: Ianos, Maria-Ta. La fotograf Cica un ardelean si-a luat si el nevasta s-o duca la Bucuresti ca sa vada si ea deh - ca tot omu' - Capitala. Mergând ei asa, vad u

Instalație pentru irigat plantele de apartament cu un releu și un ESP32 cu OpenMQTTGateway, și integrat în Home Assistant (2) - Demonstrație practică

Instalație pentru irigat plantele de apartament cu un releu și un ESP32 cu OpenMQTTGateway, și integrat în Home Assistant  (2) - Demonstrație practică Azi am reușit să fac un test cu instalația pentru irigat plantele de apartament prezentată în articolul precedent, iar în filmulețul de mai jos se observă modul în care funcționează pompa și picăturile de apă ajunse la cele două plante. Recapitulare din articoul precedent Pentru acest proiect am folosit controllerul ESP32, un releu cu un canal de 5V și o priză cu protectie antiumezeală. Releul l-am înghesuit în carcasa prizei, iar controllerul l-am montat în carcasa pentru ESP32 proiectată și imprimată de mine la imprimanta 3D.Controlerul l-am programat folosind platformIO cu proiectul OpenMQTTGateway, care l-am configurat pentru ZactuatorONOFF, iar pe pinul GPIO23 am conectat releul. Astfel din Home Assistant am disponibilă interfața (semnalul actuatorONOFF) de control pentru acest releu. În Home assistant am realizat și o mică

Instalație pentru irigat plantele de apartament cu un releu și un ESP32 cu OpenMQTTGateway, și integrat în Home Assistant (1)

Instalație pentru irigat plantele de apartament cu un releu și un ESP32 cu OpenMQTTGateway, și integrat în Home Assistant În articolul de azi am adaptat un proiect mai vechi pentru a controla o priză de 220V AC folosind un releu și un ESP32, prin care se controlează o mini pompă submersibilă. Această pompă este scufundată într-un mic butoiaș umplut cu apă, iar în momentul în care se activează alimentarea pentru pompiță atunci aceasta pornește și trage apa din butoiaș și o distribuie plantelor prin intermediul unor țevi și niște duze de picurare. Pentru acest proiect am folosit controllerul ESP32, un releu cu un canal de 5V și o priză cu protectie antiumezeală. Releul l-am înghesuit în cutia prizei, iar controllerul l-am montat în carcasa pentru ESP32 proiectată și imprimată de mine la imprimanta 3D . Controlerul l-am programat folosind platformIO cu proiectul OpenMQTTGateway , care l-am configurat pentru ZactuatorONOFF , iar pe pinul GPIO23 am conectat releul. Astfel din Home As

Dozator automat pentru hrănit peștii (3) Upgrade - Programarea controller-ului Arduino Nano Every în PlatformIO și adăugarea unui buton

Programarea controller-ului Arduino Nano Every în PlatformIO și adăugarea unui buton Azi i-am făcut un upgrade proiectului " Dozator automat pentru hrănit peștii " realizat în 2020 pentru a automatiza hrănirea peștilor din acvariul personal. Dozatorul în mod normal se activa la orele 7:30 și 20:30, dar nu aveam posibilitatea să-l activez manual, astfel i-am adăugat un buton pentru activare. Se vede în imaginea de mai jos montarea butonului pe capac deasupra controller-ului. Astfel prin apăsarea butonului dozatorul o să elibereze o doză de hrană spre fericirea peștișorilor. Pentru a face proiectul mai interesant am realizat configurația pentru platformIO bazat pe Visual Studio Code, în principiu pentru că este un IDE mult mai ușor de folosit, și îmi oferă o navigare mult mai facilă în codul sursă la variabile și funcții. PlatformIO oferă și o căutare foarte faină cu vizualizarea directă a fișierelor unde se află cuvântul cheie căutat. Componente: Din păcate nu am mai gă

Mini proiect (43) - Senzor de inundatie cu ESP32 pe OpenMQTTGateway și Home Assistant

Senzor de inundație cu ESP32 pe OpenMQTTGateway și Home Assistant   Azi am lucrat la adaptarea unui proiecțel mai vechi pentru Home Assistant , și practic am construit un senzor de inundație . Am folosit tot  OpenMQTTGateway, pentru care am făcut câteva adaptări în source code (vezi mai jos detaliate toate adaptările).  Pe lângă asta am mai conceput o carcasă pentru ESP32 cu lungimea de 52 mm și lățimea de 28.5 mm. Senzorul l-am conectat la ESP32 pe pinii de mai jos (vezi și schema electronică la secțiunea Schema electronica/sistem ): ESP32   WaterSensor GND - GND - VIN - VCC + ADC_A0 D36 - PIN Semnal S   Am filmat și un scurt filmuleț de demonstrație, în care se observă fluctuația semnalului adc de la senzorul de apă, dar și semnalul boolean water_detected care indică practic dacă este inundație sau nu, iar dacă șterg senzorul se observă că cele două valori trec în zero.  Senzorul scufundat jumătate în apă indică adc = 3349 , iar semnalul water_detected este egal cu 1 , vizibile