(Acest articol a fost publicat pentru prima dată pe Analitică deschisăși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Introducere
Denumirea unui copil poate fi o sarcină dificilă. Poate dura – în curând – părinții destul de mult timp pentru a se alinia pe un nume care le place amândoi. După aceea, poate fi, de asemenea, dificil să păstrezi numele un secret până la naștere.
Dacă aveți noroc, s -ar putea să existe câțiva prieteni apropiați sau colegi care se așteaptă simultan la un copil. Poate fi o ocazie unică în care poți împărtăși experiențe. Cu toate acestea, nu ar fi păcat dacă ar avea un nume similar în minte ca tine? Probabil că ați dori ca copiii dvs. să aibă un nume mai mult sau mai puțin unic, nu? În știința datelor am putea folosi un Identificator universal unic (Uuid) Pentru a rezolva această problemă. Sau s-ar putea alege nume foarte exotice, cum ar fi æ a-xii. Chiar dacă, în principiu, garantează unicitatea, acestea ar putea să nu fie soluții adecvate pentru numirea unui copil …
Deci, având în vedere că ați ales un nume mai „convențional”, există un risc că este similar cu cel pe care prietenii dvs. l -au ales. Înainte de a începe să vă proiectați cărțile de naștere, s -ar putea să doriți să vă aliniați unul cu altul pentru a evita asemănările. Ați putea verifica dacă numele dvs. nu încep cu aceeași scrisoare. De asemenea, puteți compara cantitatea totală de scrisori. Dar, din păcate, aceste tipuri de indicii dau ușor care ar putea fi numele tău. Mai mult, acestea ar putea trece cu vederea nume ușor similare și moduri diferite de a scrie același nume. Aşa Cum puteți compara în mod corespunzător numele bebelușilor fără a dezvălui nimic?
Aceasta pare o sarcină imposibilă. Care este tipul de sarcină pe care ne place să o rezolvăm.
Să folosim hashes pentru a verifica confruntările!
Ce este hashing -ul?
Algoritmi puternici precum MD5 şi
SHA256 Vă permite să vă convertiți numele bebelușului într -un text unic care pare a fi o prostie completă. Ca exemplu, putem face următoarele în R:
digest::digest('Open Analytics', algo = "md5") -> 620b15afa8838824d3f396b1cff4a68c
Această conversie se numește Hashhing. Gândiți -vă la asta ca la a lua o amprentă a persoanelor. Puteți lua cu ușurință o amprentă de la o persoană, identificând în mod unic acea persoană. Cu toate acestea, dacă nu aveți acces la o bază de date cu infractori cunoscuți, o amprentă singură este complet lipsită de sens. Pe baza amprentei singure, nu există nicio modalitate de a reconstrui persoana care a venit.
Așadar, dacă împărtășim doar „amprentele” numelui (numele) noastre, putem compara cu ușurință dacă se ciocnesc. Fără a strica alte informații despre nume.
Singura lacună este, desigur, că prietenii tăi pot începe să încerce fiecare nume posibil până când găsesc un meci. Cu toate acestea, ar pierde mult timp și karma fac acest lucru, mai ales dacă nu au niciun indiciu prealabil cu privire la care ar putea fi numele tău. Aceasta este ca hacking-ul forței brute, încercând fiecare parolă până când veți primi acces.
Deoarece hashing -ul este atât de ușor și de sigur, nu este de mirare că este folosit peste tot în el. Cel mai obișnuit exemplu este stocarea parolei. În loc să vă stocați parola reală, furnizorii buni vor păstra doar o versiune criptată. Acest lucru este suficient pentru a verifica dacă ați furnizat parola corectă, fără să știți de fapt vreodată! În sensul că, în cazul scurgerilor de date, de obicei doar versiunea criptată este scursă. Ceea ce înseamnă că scurgerile de date nu sunt întotdeauna direct dăunătoare.
Asta înseamnă că ești întotdeauna în siguranță? Nu! Hackerii au parole mari de „amprente de amprentă” potrivite cu formularele lor hashed găsite. Dacă utilizați o parolă ușor de ghicit, șansele sunt că vor găsi o potrivire în baza lor de date. Așadar, asigurați-vă că utilizați parole care nu sunt previzibile! Dar să oprim aici rafinamentul tehnic, aceasta a fost doar o mică postare despre bebeluși, nu?
Încearcă -te!
Puteți începe să comparați numele bebelușilor Aici.
Aplicația este scrisă în R Shiny, un cadru ușor pentru a crea aplicații de știință a datelor. Ulterior, îl construim folosind Shinylive, ceea ce îi permite să funcționeze în întregime într -un browser. Prin utilizarea paginilor Github, acesta poate fi găzduit gratuit. Ghiduri excelente despre cum să faceți acest lucru pot fi găsite aici.
Această abordare ar putea fi una dintre cele mai ușoare moduri libere de a implementa o aplicație. Cu toate acestea, rețineți că aplicația dvs. va fi deschisă pe întregul web și s -ar putea să nu fie la fel de performantă. Dacă aveți nevoie de o soluție open source mai avansată pentru implementarea aplicațiilor, vă recomandăm să aruncați o privire asupra ShinyProxy.
Bucurați -vă de ecrypting și de a compara numele copilului!