Hva er en Hash-kalkulator?
En hasjkalkulator kan være flere ting, men refererer i en veldig bred forstand til et program eller en funksjon som godtar en eller annen type inngang og deretter kjører denne inngangen gjennom en algoritme for å lage en utgangsverdi, for eksempel et stort antall eller en blokk med symboler. Begrepet brukes ofte i dataoverføring for å referere til et program som oppretter en type nøkkel med en algoritme, slik at alle som mottar dataene overført kan bruke den samme algoritmen for å få den samme nøkkelen for å se om dataene kom intakte og umodifiserte. I datamaskinprogrammering kan uttrykket "hashkalkulator" brukes til å indikere en hasjfunksjon som gjør en type data om til en hashnøkkel som deretter blir behandlet av en annen algoritme for å lage en indeks til en matrise der informasjonen kan lagres. Selv om begge konseptene i kalkulatoren er like, er resultatene veldig forskjellige og er vanligvis ikke utskiftbare. En felles egenskap for en hashkalkulator, uansett bruk, er at den genererte hashverdien alltid vil være den samme for et gitt stykke data, uavhengig av hvor eller når programmet kjøres.
I kjernen er en hasjkalkulator bare et program eller funksjon som lager en hasj fra noen data. En hasj er bare et ord for en verdi og kan være alt fra et tall til en streng med hundrevis av alfanumeriske tegn, avhengig av hvordan den brukes. Dataene som er lagt til en hasjkalkulator for å lage en hasj, kan også være nesten hva som helst. Når den brukes til feilkontroll i dataoverføring, er kilden for en hashverdi vanligvis et komplett dokument eller datafil, for eksempel en e-post eller en bildefil. Fordi hashverdien brukes til å bestemme hvor dataposter er lagret i en hasjetabell, er inngangsverdien vanligvis en del av en datarekord som er unik, for eksempel etternavnet til en person, et telefonnummer eller en kontonummer.
Når det gjelder dataoverføring, bruker en hasjkalkulator en av hundrevis av forskjellige matematiske algoritmer for å skape den unike hashverdien for informasjonen som overføres. Dette kan være noe så enkelt som å legge til alle verdiene for alle byte i en fil, i så fall er hashverdien summen. Det kan også være mye mer komplekst, ved å telle blokker med biter eller overflødig behandle forskjellige sekvenser med tall. Et av de viktigste aspektene ved en hvilken som helst hashalgoritme er imidlertid at den resulterende hashverdien alltid må være den samme hvis de samme dataene brukes som input. Dette konseptet betyr at hvis en fil blir overført med sin egen kalkulerte hashverdi, kan mottakeren av dataene bruke en hasjkalkulator med den samme algoritmen for å bestemme om hasjverdiene for dataene stemmer, og bekrefte at dataene ble mottatt intakt og uten feil eller endringer.
I programmering brukes ofte "hashkalkulator" for å beskrive en funksjon som konverterer et stykke nullpunkt til en hashverdi. I motsetning til dataoverføring, brukes ikke nødvendigvis antallet generert av kalkulatoren i dette tilfellet for verifisering, men for å beregne en indeks til en hasjtabell der informasjonen vil bli lagret. En mellomliggende hashverdi beregnes for å tillate at et større antall dataregistreringer forutsigbart kan plasseres i en mindre hasjtabell, hvor noen poster genererer de samme verdiene under visse omstendigheter. Både algoritmen som brukes til å beregne en hashverdi og dataene som brukes som input er ganske vilkårlige for en hasjetabell og vanligvis applikasjonsspesifikke.