hashing har helt bestemt intet med nogen form for kryptering at gøre.
det progblem man løser med hashing er at nøgleværdierne i en spredt ('sparse') array ofte klumper fx styresystemnavne
windows95 windows98 windowsME windowsXP windowsNT Wondows2000 Unix Linux OS2 MacOS
der er mange andre, men i forhold til antallet mulige bogstavkombinationer på 11 eller færre bogstaver er det alligevel nul og niks.
vi vil lave et array med de navne. og så er der et problem med tid, for at skelne en windows fra en anden skal vi sammenligne syb bogstaver i rap før der er nogen forskel at se, det koster. Lige i eksemplet her er det nok overkommeligt, men forestil dig det er hovedtelefonbogen for kina og hver nøgle er et personnavn, en vejadresser, et bynavn, et distrikt, osv. det er en dyr database at slå op i.
Det hashing gør er at komprimere nøglerne så de fylder en brøkdel af hvad de bjorde før og samtidig (hvis man gør det fornuftigt) bliver meget bedre at slå op i databasen med.
en ofte anvendt metode er at folde nøglerne en gang eller flere.
windows95------- tilføj blanktegn så der er et pænt tal (her 16)
02 02 02 02 02 02 02 53 fold sammen 77 69 6e 64 6f 77 71 39
79 7b 70 66 71 79 73 8c læg sammen (carry smides bare væk)
c8 37 97 17 fold sammen igen 79 7b 70 66
41 b2 07 7d læg sammen igen
d7 70 og sidste gang 41 b2
18 22 og ny har vi et 16bit tal der er pærenemt at sammeligne med
Benærk at den metode vi bruger til at komprimere nølerne skal være meget præcist defineret, så vi kan gøre det igen og igen. hvegang nogen komme med en streng "windows95" skal den komprimerede hash-nøgle blive præcis den samme.
vi laver hash-nøgler med samme metode for de andre nøgler og nu kan vi lede i databasen med de nøgler som er lynhutige at sammenlignemed. i databasen gemmer vi både hash-næglen og den lange nøgle, det er vi nødt til for det er komplet umuligt st starte med 1822 og derudaf bergene at den lange nøgle var 'windows95' der er bunker af lange nøgler det kunne have været.
måske endda 2 af dem vi har brug for at kunne finde i vores database. men 'so what!' så hiver vi bare dem begge to ud af databasen og sammenligner på den store nøgle, hvilken af dem vi vil have.
Det lyder grumme omstændigt, men man kan faktisk spare en masse cputid med sådan nogen hash nøgler.
men hvis det er en måde at kryptere data på du ønsker skal du ikke brugge detteher. ved kryptering er det jo vigtigt at man kan konvertere tilbage igen, og det kan man ikke med hashing.
Det var meget interessant at læse om men det er desværre ikke helt det jeg skal bruge.... er nok mere et eksempel for kode der kan MD5 kryptere en streng.....
jakoba: Tak for svarene men jeg har desværre ikke kunne få kilden til at køre.. Dog mener jeg absolut at du har gjordt til fortjænt til noglepoints så du får halvdelen....
Truti
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.