Leaderboard
Popular Content
Showing content with the highest reputation on 03/02/12 in all areas
-
//Late night tutorial wannabe Din neincredere fata de managerele de parole (password managers) existente pe net, m-ai facut eu unul personal in C#. Una dintre problemele aparute imediat a fost cum sa-mi stochez datele in baza de date astfel incat sa fie in siguranta chiar daca baza de date ajunge pe maini curioase. Cu putin google si ceva wiki, am reusit sa-mi creez o clasa ce cripteaza si decripteaza un string intr-un mod suficient de sigur, cred eu. Full code: using System; using System.Text; using System.Security.Cryptography; using System.Windows.Forms; namespace KeyMemo { class locker { public locker() { } public string Cripteaza(string mesaj, string cheie) { string str = ""; UTF8Encoding UTF8 = new UTF8Encoding(); //creez un convertor in md5 si un encoder TDSA MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); TripleDESCryptoServiceProvider TDSA = new TripleDESCryptoServiceProvider(); try { // cheie => md5 hash byte[] cheieMD5 = md5.ComputeHash(UTF8.GetBytes(cheie)); //setari pentru encoderul TDSA TDSA.Key = cheieMD5; TDSA.Mode = CipherMode.ECB; TDSA.Padding = PaddingMode.PKCS7; //criptam mesajul ICryptoTransform crypt = TDSA.CreateEncryptor(); str = Convert.ToBase64String(crypt.TransformFinalBlock(UTF8.GetBytes(mesaj), 0, UTF8.GetBytes(mesaj).Length)); } catch (Exception exc) { MessageBox.Show("A aparut o eroare: \n\n" + exc.ToString(), "Eroare!", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { md5.Clear(); TDSA.Clear(); } return str; } public string Decripteaza(string cod, string cheie) { string str = ""; UTF8Encoding UTF8 = new UTF8Encoding(); //creez un convertor in md5 si un encoder TDSA MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); TripleDESCryptoServiceProvider TDSA = new TripleDESCryptoServiceProvider(); try { // cheie => md5 hash byte[] cheieMD5 = md5.ComputeHash(UTF8.GetBytes(cheie)); //setari pentru encoderul TDSA TDSA.Key = cheieMD5; TDSA.Mode = CipherMode.ECB; TDSA.Padding = PaddingMode.PKCS7; //criptam mesajul ICryptoTransform crypt = TDSA.CreateDecryptor(); str = UTF8.GetString(crypt.TransformFinalBlock(Convert.FromBase64String(cod),0,Convert.FromBase64String(cod).Length)); } catch (Exception exc) { MessageBox.Show("A aparut o eroare: \n\n" + exc.ToString(), "Eroare!", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { md5.Clear(); TDSA.Clear(); } return str; } } } Cum functioneaza? Cam asa: Folosim algoritmul 3DES cu o cheie de 128 biti pentru criptare. Mai exact, trimit ca parametri stringul pe care vreau sa-l criptez si cheia (in plain text). Cheia o transform intr-un hash md5 ca sa ma asigur ca am o cheie de 128 biti // cheie => md5 hash byte[] cheieMD5 = md5.ComputeHash(UTF8.GetBytes(cheie)); Apoi aplic algoritmul (care este built-in in C#) pentru stringul meu si cheia in md5: TripleDESCryptoServiceProvider TDSA = new TripleDESCryptoServiceProvider(); //setari pentru encoderul TDSA TDSA.Key = cheieMD5; TDSA.Mode = CipherMode.ECB; TDSA.Padding = PaddingMode.PKCS7; //criptam mesajul ICryptoTransform crypt = TDSA.CreateEncryptor(); str = crypt.TransformFinalBlock(UTF8.GetBytes(mesaj), 0, UTF8.GetBytes(mesaj).Length); In final, trec stringul obtinut prin Base64 ca sa-l aduc la o forma adecvata pentru stocarea in baza de date: str = Convert.ToBase64String(crypt.TransformFinalBlock(UTF8.GetBytes(mesaj), 0, UTF8.GetBytes(mesaj).Length)); Criptarea obtinuta are formula Base64(3DSA(textInitial,MD5(Cheie))). Pare a fi suficient de complicat si de ambiguu pentru a putea dormi linistit, dar mi-am mai luat o masura de precautie in program: cheia folosita pentru criptare este parola de logare in program. Parola este retinuta in baza de date ca fiind Base64( 3DSA (Parola,MD5(Parola)), deci nu poate fi decriptata, astfel logarea in program se va face pe baza compararii stringului din baza de date cu criptarea parolei introduse de utilizator. Daca cele doua se potrivesc, atunci retinem parola in program. Restul datelor criptate au cheia parola de mai sus (care se presupune a fi stiuta doar de cel care se autentifica in program), deci criptarea este sigura. Decriptarea decurge asemanator: - parametri: string in Base64, parola in plain text; - parola => MD5(parola) - se decodeaza stringul din base64 - se decripteaza textul folosind stringul de la pasul anterior si cheia din md5. Asadar, parolele din baza de date pot fi decriptate doar dupa ce utilizatorul a introdus de la tastatura parola. Pare a fi o metoda de criptare buna, zic eu. Ce parere aveti? Daca vreti si voi managerul de parole, dati un PM. In versiunea actuala are ceva din tema de culori RST (negru cu verde), suport pentru mai mai multe persoane (utilizatori diferiti), Adaugari de conturi, sortari, cautari dupa cateva criterii, editari de conturi, validari pe campuri in timp real, tab index corect, tasta Enter face cam ce ar trebui sa faca... Nu l-am testat decat pe win7 x86, rezolutie 1680x1050, deci ar putea aparea probleme de incompatibilitate (desi i-am facut si installer). Printuri: Omuletul KeyMemo Like sau rep daca v-a fost util ceva de pe aici, sau injurati daca v-am irosit timpul degeaba Noapte buna!1 point
-
Cateva sfaturi pentru cei care vor sa lucreze intrun ambient IT ca sysadmin Voi acoperi exact cerintele si ceea ce ar trebui ca o persoana sa cunoasca. Linux Singurele sisteme Linux folosite intrun enterprise vor fi RedHat Veti intalni des IBM Power Systems cu suport Linux (Versiuni RedHat 4,5,6) Rar se pot intalni si versiuni de Centos Pentru administrarea sistemelor Linux se cer urmatoarele cunostinte -Clustering (Red Hat cluster suite) -Virtualizare (Red Hat Enterprise Virtualization)(QEMU) un bun inceput -Storage (RAID,LVM) -Web (Tomcat) Asadar toate cunostintele precedente de Linux nu vor fi de folos daca nu se cunosc elementele care le-am spus mai sus Unix Sistemele intalnite sunt HP-UX,SOLARIS,AIX,True64 -Clustering (fiecare sistem in parte are un cluster suite) -Storage (RAID,VXVM,LVM,Solstice DiskSuite) -Web LotusDomino,Tomcat,Software grafica comercial sau software PBX comercial -Virtualizare PowerVM (IBM) Solaris Containers (Solaris) VmWare (HP) Windows (tinand cont ca sistemele windows sunt foarte rare si in acelasi timp vor fi doar sisteme virtualizate in Unix) Singurele motive pentru care exista windows intrun enterprise sunt urmatarele: -Active Directory (directory service) -Exchange -Ldap Database: -Oracle Real Application Clusters (RAC) -Oracle Database 11g Enterprise Edition Alte tipuri de DB nu vin folosite decat pentru hosting (Puteti sa uitati faptul ca cunoasteti Mysql sau Postgresql) Filesystem Se cer urmatoarele cunostinte Unix (UFS) Unix Filesystem Linux (GFS) Global File System Solaris (ZFS) Zetabyte Filesystem IBM (GPFS) General Parallel File System Unix/Linux in general (NFS) Network File System Toate aceste jucarii le veti intalni in fiecare zi de dimineata pana seara intrun ambient IT .Bineinteles vi se pot cere diplome sau certificate dar voi sunteti hackeri si reusiti sa treceti de orice interviu , asadar veti fi ghidati de catre propria voastra stralucire.(dar pe aceasta tema pot fi deschise alte topic-uri cum ar fi "Cum sa ajungi sysadmin intrun corporate cu numai 4 clase?).Bafta la studiat si la interviu.Daca aveti intrebari , nu ezitati sa le faceti, daca aveti idei sau cunostinte despre ce altceva ar trebui cunoscut nu ezitati sa le propuneti, nu stati cu mainile legate daca aveti ceva de spus in legatura cu subiectul , plimbati degetele pe tastiera .1 point
-
Cand cumperi un astfel de adaptor , trebuie sa tii cont de scopul pe care il ai. Oricare model de la Alfa , in principu , este indicat pentru a realiza o conexiune wireless de buna calitate, la o distanta mult mai mare decat cu un adaptor uzual.Bate si pana la 1 Km cu antena de 5 dBi cu care e dotat. Dar daca te intereseaza sa pui chipset-ul placii wireless in mod monitor si sa faci injectii de pachete,atunci Alfa AWUS036H 1w , inca nu a fost detronata , datorita driverelor dezvoltate si implementate in toate distributiile de linux. Chestia cu 2...3 watti e mai mult momeala,dar pentru o conexiune cu viteza mare, standardul N face diferenta. Sper ca ,in doua cuvinte,m-ai inteles.Depinde de ce vrei sa faci cu placa wireless Alfa. Producatorul ti-a trimis link spre reprezentantii autorizati ca sa nu te alegi cu un Fake!1 point
-
Trebuie sa cunosti mai mult decat un individ care a absolvit universitatea Trebuie sa cunosti in special modul in care ti se vorbeste (care din voi au facut cursuri de personalitate poate inteleg putin)Trebuie sa fi covins de ceea ce spui cand arunci pastila chiar daca e un bullsh*t curat Trebuie sa risti.Trebuie sa cunosti metodele in viata de zi cu zi si sa te adaptezi la cerinte (multi creaza cv-uri in mod static)Ei bine eu citesc anuntul si adaptez cv-ul la cerintele anuntului.Ceea ce consider este faptul ca studentii nu au timp sa studieze fluxul si metodele oamenilor de afaceri din viata de zi cu zi , ei se limita la cunostintele pe care sistemul universitar impus de catre marile companii de afaceri le vine prezentat.Deci coborand la nivelul gaina si ou sa fiu mai clar din ou iese un pui iar gaina il invata ceea ce considera ea ca ar trebui sa stie.Strategiile au fost deja construite iar majoritatea urmeaza regulile impuse de catre aceste stratgii.Daca noi am cunoaste aceste strategii , daca noi am cunoaste regulile lor si am reusi sa facem diferenta si in acelasi timp ne-am da seama ca de fapt oamenii urmeaza regulile acestor strategii fara sa cunoasca diferentele am putea modifica ceea ce in viata de zi cu zi ni se pare imposibil.Eu nu reusesc sa inteleg cum abordati voi situatia sau ce e in capul vostru dar stiu cine va invatat si ce idei vi sau impus in cap deci va cunosc mai bine si stiu urmatoarea miscare pe care o veti face.In legatura diplomelor daca provin din alte tari e greu sa verifici , dar poate nu m-ati crede daca as spune ca eu am trecut testul pe cuvant fara sa scot foile din buzunar.E clar ca daca careva ar pune intrebari sau ar face pe suspectul eu as considera ca e mai destept decat mine sau cunoaste mai mult.Trebuie doar sa ai imaginea unui student dar sa cunosti mai mult decat profesorul studentului.Uite eu imi pun o pereche de ochelari pe ochi , o cravata , un costum, si iau o gramada de foi si pixuri dupa mine si par un student corect, daca careva ma vede prima intrebare este la care universistate studiezi deci el are deja in subconstientul lui informatia clara ca eu nu as putea sa il mint in aceasta privinta deoarece nu exista 100 de oameni care se dau drept studenti ci soar un student adevarat s-ar putea da drept student (astea sunt ideile care multi le numesc chestii normale asa vau invatat deci nu poate fi gresit un student sa nu fie defapt un student.)Acum depinde doar ce poate iesii din gura acestui student care defapt nu e student dar toti cred ca e student.Daca stiu ca esti student inca nu iti vor cere diploma deoarece stiu ca nu ai teminat universistate , o data ce treci de test nu ti-o vor mai cere deoarece nu vin preocupati de diploma ta si ai deja o oarecare vechime la ei.Un certificat poate fi facut la imprimanta, sau in cel mai simplu caz faci cursul si il iei , nu e greu.Acum ceea ce scoti din gura e proportional cu cunostintele pe care le-ai acumulat pe forum (a fost o gluma) nu poti sa ii spui ca faci sqlinjection cu havij , oricum in database-urile lor nu va merge oricum.Acum daca toata viata ai futut menta pe forum si ai injectat aceleasi coduri de cacat in aceleasi db-uri de 2 lei nu vei trece de interviu bineinteles, doar nickname-ul tau va fi renumit iar tu vei ramane un sobolan batran fara prea multe cunostinte.Acum din punct de vedere personal de cand m-am nascut eu am vrut sa cunosc totul chiar daca altii mi-au spus ca e imposibil si mi-au ras in fata .Faptul ca e imposibil imi place deoarece oamenii nu cunosc altceva inafara de ceea ce le vine impus prin sistemul de educatie si mass media.Cand ti se pare ca ceva e clar il accepti fara sa pui multe intrebari iar eu fac in asa mod incat sa fie claritate si precizie.-1 points