Maišos yra matematinės formulės, kurios paima kintamo ilgio duomenų eilutę, dažniausiai teksto pavidalu, ir konvertuoja ją į trumpesnes fiksuoto ilgio skaitines reikšmes. Maišos dažnai naudojamos kompiuterių duomenų bazėse, kad paieška būtų greitesnė ir efektyvesnė. Jie taip pat naudojami šifruojant, siekiant užtikrinti, kad slaptažodžiai nebūtų pažeisti, ir autentifikuoti skaitmeninius parašus, be kitų naudojimo būdų. Maiša taip pat vadinama maišos funkcijų pavadinimais ir taip pat gali būti laikoma algoritmais.
Maišos vaidina svarbų vaidmenį palengvinant paiešką duomenų bazėje. Pavyzdžiui, duomenų bazėje, kurią sudaro vardai, jei vartotojas ieško „John Doe“, kompiuteris turėtų suderinti visus paieškos simbolius su kiekvieno duomenų bazės įrašo simboliais. Kiekvienas vardo simbolis turėtų 26 skirtingas galimybes – anglų abėcėlės raides, o kintamas įrašų ilgis taip pat sulėtintų paiešką.
Priešingai, pritaikius maišos funkciją, kompiuterio gyvenimas būtų daug lengvesnis. Kiekvieną teksto eilutę pavertus skaičių seka, paieška būtų supaprastinta, nes kompiuteris turėtų tik dešimt galimybių patikrinti kiekvieną simbolį: skaitmenis nuo 0 iki 9. Fiksuotas skaičių serijos ilgis taip pat padeda kompiuteriui efektyviau atlikti savo darbą.
Duomenų bazėje, kurioje taikoma maišos funkcija, visi įrašai turi atitinkamą unikalų numerį. Tai vadinama maišos raktu. Šiuo atveju, kai atliekate paiešką, kompiuteris pirmiausia taiko maišos funkciją jūsų parašytai įvestiei, pvz., „John Doe“. Dėl to gaunama skaitinė reikšmė, pavyzdžiui, „456789“. Tada kompiuteris gali greitai suderinti šį rezultatą su maišos raktu, atitinkančiu teisingą įrašą.
Maišos taip pat veikia kaip skaitmeniniai parašai. Pavyzdžiui, siuntėjas Robertas nori kam nors nusiųsti dokumentą, o gavėjas Marija nori įsitikinti, kad pakeliui dokumentas nebuvo sugadintas. Siuntėjas Robertas turi tik paleisti dokumentą naudodamas maišos funkciją, dėl kurios gaunama skaitinė reikšmė. Tada Robertas užšifruoja maišos raktą ir išsiunčia dokumentą kartu su užšifruotu raktu.
Marija gauna abu elementus ir iššifruoja maišos raktą. Dabar ji gali matyti skaitinę reikšmę, gautą iš dokumento prieš jį išsiuntimą. Kad patikrintų, ar jos rankose esantis dokumentas yra toks pat, ji paleidžia dokumentą naudodama maišos funkciją savo kompiuteryje. Galiausiai ji palygina abu raktus. Jei jie yra vienodi, tada dokumentas nebuvo pakeistas pakeliui į gavėją.
Yra daug skirtingų maišos funkcijų, kurių kiekviena turi savo matematines formules. Kad maišos funkcija veiktų, ji turi sumažinti bet kokį susidūrimą, kuris įvyksta, kai du duomenų bazės įrašai turi tą patį maišos raktą. Maišos funkcijos taip pat turi būti vienpusės. Tai reiškia, kad galite sukurti raktą iš duomenų bazės įrašo ar dokumento, bet ne atvirkščiai. Kitaip tariant, negalite „atgręžti“ originalaus dokumento iš maišos rakto.