Vad är en Hash-kalkylator?

En hash-kalkylator kan vara flera saker, men i en mycket vid mening hänvisar den till ett program eller en funktion som accepterar någon typ av indata och sedan kör den ingången genom en algoritm för att skapa ett utdatavärde, till exempel ett stort antal eller ett block av symboler. Termen används ofta i dataöverföring för att hänvisa till ett program som skapar en typ av nyckel med en algoritm så att alla som tar emot data som överförs kan använda samma algoritm för att få samma nyckel för att se om data anlände intakt och oförändrad. Inom datorprogrammering kan termen ”hash-kalkylator” användas för att indikera en hash-funktion som förvandlar någon typ av data till en hash-nyckel som sedan bearbetas av en annan algoritm för att skapa ett index till en array där informationen kan lagras. Även om båda begreppen för räknaren är lika, är resultaten väldigt olika och är vanligtvis inte utbytbara. En gemensam egenskap hos en hash-kalkylator, oavsett hur den används, är att hashvärdet som genereras alltid kommer att vara identiskt för en given databit, oavsett var eller när programmet körs.

I sin kärna är en hash-kalkylator bara ett program eller en funktion som skapar en hash från vissa data. En hash är bara ett ord för ett värde och kan vara allt från ett tal till en sträng med hundratals alfanumeriska tecken, beroende på hur det används. Data som läggs till i en hash-kalkylator för att skapa en hash kan också vara nästan vad som helst. När det används för felkontroll vid dataöverföring är källan för ett hashvärde vanligtvis ett komplett dokument eller en datafil, till exempel ett e-postmeddelande eller en bildfil. I programmering, eftersom hashvärdet används för att bestämma var dataposter lagras i en hashtabell, är inmatningsvärdet vanligtvis någon del av en datapost som är unik, såsom efternamnet på en person, ett telefonnummer eller en kontonummer.

När det gäller dataöverföring använder en hash-kalkylator vilken som helst av hundratals olika matematiska algoritmer för att skapa det unika hashvärdet för informationen som överförs. Detta kan vara något så enkelt som att lägga till alla värden för alla bytes i en fil, i vilket fall hashvärdet är summan. Det kan också vara mycket mer komplext, involvera räkning av block av bitar eller redundant bearbetning av olika nummersekvenser. En av de viktigaste aspekterna av alla hashalgoritmer är dock att det resulterande hashvärdet alltid måste vara detsamma om samma data används som indata. Detta koncept innebär att, om en fil sänds med sitt eget beräknade hashvärde, så kan mottagaren av data använda en hashkalkylator med samma algoritm för att avgöra om hashvärdena för data matchar, och verifiera att data mottogs intakt och utan fel eller ändringar.

I programmering används termen ”hash-kalkylator” ofta för att beskriva en funktion som omvandlar ett datum till ett hashvärde. Till skillnad från dataöverföring används numret som genereras av räknaren i detta fall inte nödvändigtvis för verifiering utan för att beräkna ett index till en hashtabell där informationen kommer att lagras. Ett mellanliggande hashvärde beräknas för att tillåta ett större antal dataposter att förutsägbart placeras i en mindre hashtabell, där vissa poster genererar samma värden under vissa omständigheter. Både algoritmen som används för att beräkna ett hashvärde och data som används som indata är ganska godtyckliga för en hashtabell och vanligtvis applikationsspecifika.