Ar putea fi interesant challenge-ul, insa a fost formulat foarte retardat. Ca sa stergi niste date, nu trebuie sa le decriptezi inainte, le stergi direct. Daca stii ca vine politia dupa tine, doar nu stai sa stergi ce ai pe laptop, distrugi hardul direct si aia e. Si sa fim seriosi, este AES de 256 de biti. Doar daca vine NSA-ul dupa tine ar trebui sa iti faci griji.
Am decis sa postez si un exemplu de algoritm. (Probabil este vai de mama lui) Private Function test(ByVal s As String) As String Dim hash As String = "" Dim frst As BigInteger = 0 For i = 0 To s.Length - 1 frst += AscW(s(i)) ^ i + AscW(s(i)) * (i + 2) ^ 6 Next While frst <> 0 hash &= StrToHex(ChrW(frst Mod 10)) frst = frst / 10 End While Return hash End Function Testat cu 5 milioane de stringuri random. (6-20 caractere) Executia a durat 1 minut si 55 secunde. 6 coliziuni gasite (12 stringuri in total) +++++++++++ 9255366911 ------------ yMv0FA ------------ 8PVzDA +++++++++++ 5559954453 ------------ wXm3QQ ------------ Msy0QQ +++++++++++ 89388952942 ------------ 79Y5Fx ------------ o7JaEx +++++++++++ 5432371422 ------------ DTmdoI ------------ sYMr5J +++++++++++ 295831655 ------------ MvDtO7 ------------ vOdrO7 +++++++++++ 99751123942 ------------ MgN4Jx ------------ u510LM5
..... hashul carui cuvant e asta? //am gasit, este "word" M-am uitat peste, este mai degraba o codare decat un hash. Poti sa refaci cuvantul din acel hash.
Am modificat, poti face si mai multe functii daca iti este mai usor. Grija, nu aveti sa folositi chestii deja existente. (spre exemplu, md5 (lol), base64, etc.)
1. Creati un algoritm care genereaza hashul (ceva ce nu poate fi decriptat!) pentru un string introdus de la tastatura. 2. Algoritmul (functia) trebuie sa aiba maxim 40 linii de cod. Puteti avea mai multe functii atat timp cat toate functiile unite au sub 40 linii de cod. 3. Algoritmul trebuie sa fie usor de rescris in alte limbaje de programare. 4. Algoritmul cu cele mai putine "coliziuni" va castiga. Exemplu de coliziune: Hashul lui "asd" este "alabala", iar hashul lui "iasdnfoansd" este tot "alabala". 5. Toti algoritmii vor fi testati cu ~ 5 milioane de cuvinte de diferite lungimi (acelasi set de cuvinte random). 6. Nu aveti voie sa copiati algoritmi de pe net. Trebuie sa fie facut de voi. Nu puteti modifica un algoritm deja existent. 7. Intrati in challenge prin postarea algoritmului aici. 8. Hashul trebuie sa aiba sub 128 de biti. 9. Avand in vedere ca este cam greu ca hashul oricarui cuvant sa aiba un numar fix de caractere, nu este obligatoriu acest lucru. 10. Puneti si un exemplu cu hashul unui cuvant ca sa fiu sigur ca le convertesc bine pentru test! Daca aveti intrebari, postati aici. Scuzati eventualele greseli gramaticale.
Ce poti invata (doar ai zis cu scop educational) daca compilezi chestia asta? Ce sursa de inspiratie este compilarea botului asta creat pentru frauda bancara?
Am incercat si eu cu bautor de ceai, administrator, retired administrator, super moderator, user, registered user, registered users, member list, virusica, profil, profile, user profile (toate cu litere mari si mici, degeaba)