-
Posts
1576 -
Joined
-
Last visited
-
Days Won
24
Everything posted by TheTime
-
Partea de criptare si decriptare se face instant. Am gandit programul astfel incat sa nu criptez sau decriptez parole decat atunci cand utilizatorul vrea sa le adauge/modifice, sau sa le vada. Timpii de latenta in aplicatie apar atunci cand interactionez cu baza de date, dar asta este o alta poveste.
-
Nu, pentru ca probabilitatea de a fi 0 zgomot intr-o intersectie nu e prea mare, deci distributia nu este echidistanta intre toate variantele posibile. Ca sa nu mai vorbim de o camera cu femei in ea, acolo nu e liniste niciodata!
-
Ideologia Hackerului cersetor ... "de Romania"
TheTime replied to embose46's topic in Cosul de gunoi
Clasa a IV-a... Tocmai mi-ai facut ziua mai frumoasa -
Daca nu iti place sa stii ca numerele tale sunt generate de algoritmi prestabiliti, arhicunoscuti de toata lumea, de ce nu iti faci tu propriul algoritm de random? Am avut acum cateva luni de generat o lista de numere aleatoare si am facut cam asa: 1. am declarat un pointer p; 2. i-am luat adresa de memorie alocata; 3. am trecut adresa respectiva in baza 10; 4. am luat catul impartirii la numarul maxim ce imi trebuia. Cam asta e algoritmul de generare, executat pentru fiecare numar in parte. Putina latenta de lucru, dar si-a facut treaba de minune. La calculatoare, alocarea adreselor de memorie mi se pare a fi un random inca neexploatat.
-
if(i<=j) then begin aux:= V[i]; V[i]:= V[j]; V[j]:= aux; Inc(i); Dec(j); end; Nu cunosc limbajul, dar cred ca if-ul nu se executa niciodata. Asa cred ca ar trebui sa fie: if(V[i]<=V[j]) then begin aux:= V[i]; V[i]:= V[j]; V[j]:= aux; Inc(i); Dec(j); end;
-
Cum instalez BackTrack 5 R1 pe un PC ??
TheTime replied to askie's topic in Sisteme de operare si discutii hardware
Asta daca vrei sa bootezi linuxul de pe un stick. Daca vrei sa-l si instalezi, o sa-ti apara pe desktop-ul de la backtrack o iconita cu install, iar de acolo te descurci tu. -
Trimite-mi si mie un PM cu detalii, poate te pot ajuta.
-
As fi si eu curios, cam cat timp ai investit in el?
-
Am gasit un pdf scurt (sub 10 pagini), dar in limba engleza, care explica in mare ce se petrece in spatele unui atac de tip WPS bruteforce. Am observat ca de cateva luni apar zeci de videoclipuri despre cum se foloseste reaver, dar niciunul nu explica si cum functioneaza. Va recomand sa o cititi, nu dureaza prea mult... http://sviehb.files.wordpress.com/2011/12/viehboeck_wps.pdf I hope it helped!
-
Nice! Mai poti adauga in cod cate un comentariu din cand in cand, pentru cititori...
-
Toate resursele alocate aplicatiei (interfata + cod) tale sunt 'mancate' de bucla infinita while(1), deci interfata ramane blocata pana se opreste codul din spate. Solutia este sa pui codul de sub buton intr-un nou thread, pentru a i se aloca resurse separate. Cum faci asta gasesti pe google. Eu iti recomand sa faci si un buton de stop
-
//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!
-
#include <iostream.h> void main() { int n; //numarul de elemente din tablou cout<<"Introduceti numarul de elemente din vector: "; cin>>n; int a[100]; int sa = 0, sb = 0; //suma de la punctul a si suma de la punctul b for (int i=0; i<n; i++) { cout <<"a["<<i<<"]= "; cin>>a[i]; if (a[i]%5 == 0) sa = sa + a[i]; if ((a[i] % 2 == 0) && (a[i] % 3 != 0)) sb = sb + a[i]; } int sc = 0; //suma de la c) for (i=1; i<n-1; i++) { if (a[i] == (a[i-1]+a[i+1])) sc = sc + a[i]; } cout<<endl<<"Suma elementelor din vector divizibile cu 5 este: "<<sa; cout<<endl<<"Suma elementelor din vector divizibile cu 2, dar nu si cu 3 este: "<<sb; cout<<endl<<"Suma elementelor egale cu vecinii lor este: "<<sc; } Rezolvare completa, cod curat, ca pentru clasa a 11-a Te inteleg perfect pr00f.. se mai intampla.
-
Atunci scoate liniile urmatoare: #include <conio.h> clrscr(); getch(); sunt mai mult pentru aspect, merge bine si fara ele
-
#include <iostream.h> #include <conio.h> int main() { clrscr(); int n; //numarul de elemente din tablou cout<<"Introduceti numarul de elemente din vector: "; cin>>n; int a[100]; int sa = 0, sb = 0; //suma de la punctul a si suma de la punctul b for (int i=0; i<n; i++) { cout <<"a["<<i<<"]= "; cin>>a[i]; if (a[i]%5 == 0) sa += a[i]; if ((a[i] % 2 == 0) && (a[i] % 3 != 0)) sb += a[i]; } cout<<endl<<"Suma elementelor din vector divizibile cu 5 este: "<<sa; cout<<endl<<"Suma elementelor din vector divizibile cu 2, dar nu si cu 3 este: "<<sb; getch(); return 0; } Punctele a) si . La c) nu prea am inteles ce vrei. LE: wtf pr00f?!? tablouri unidimensionale = matrici patratice? De cand? Eu stiam ca sunt vectori...
-
As avea si eu nevoie de cateva mailuri @yahoo.com cu parola, eventual si un cont pe freelancer.com. Pm, te rog. Multumesc!
-
Salut baieti. Am gasit din pura intamplare cateva PDF-uri in limba romana care se vor a fi un fel de introducere in cunostintele unui sysadmin. Imi par a fi bine explicate, deci pot fi utile pentru cei care vor sa invete ceva. O descriere a cursurilor o gasiti aici: http://www.ciupercutz.ro/download/curs-administrator-de-retea-de-calculatoare Va dau si un link direct de download, fara sa va mai inregistrati pe siteul respectiv: http://www.filehost.ro/3088187/curs_admin_retea_rar/ Spor la citit!
-
Cursuri Gratuite Online de la Universitatea Standford
TheTime replied to begood's topic in Stiri securitate
M-am inregistrat si eu pentru urmatoarele: CS 101 Computer Security Cryptography Design and Analysis of Algorithms I Pe langa cursurile din sII aII de la automatica si cateva proiecte personale, mi-am facut de lucru pana la vara... -
fara descrierea functiei valid() e cam greu... nu pot sa dau decat cu presupusul, iar eu as incerca sa scriu de la tastatura ceva de genul "return 1" sau "!p" sau "1==1?return 1:" Sunt pe aproape? LE: \"1==1?return 1: Asta e, nu?
-
La multi ani! Scuze ca am intarziat ps: NU vreau link dar e frumos gestul tau
-
La multi ani! Scuze ca am intarziat ps: NU vreau link dar e frumos gestul tau