Maišos funkcija yra fiksuoto ilgio eilutė (santrauka), sugeneruota iš bet kokio dydžio įvesties duomenų naudojant maišos funkciją. Procesas yra vienpusis – negalima iššifruoti ar pakeisti maišos, kad gautumėte originalius duomenis. Štai kodėl „maišos šifravimas“ yra netikslus pavadinimas; Maišos algoritmas nėra šifravimas.
Populiarūs maišos algoritmai:
MD5 (nebenaudojamas dėl saugumo)
SHA-1 (nebenaudojamas)
SHA-256, SHA-512 (SHA-2 šeimos dalis)
SHA-3
bcrypt, scrypt, Argon2 (saugiam slaptažodžių maišymui)
Maišos funkcija atliekama keliais kibernetinio saugumo ir duomenų vientisumo tikslais. Pagrindinės maišos naudojimo priežastys:
Duomenų vientisumas: Užtikrina, kad duomenys nebuvo pakeisti (pvz., failų kontrolinės sumos).
Slaptažodžių saugojimas: Saugiai saugo slaptažodžius, lygindama maišas, o ne saugodama tikrus slaptažodžius.
Skaitmeniniai parašai: Pasirašomos maišos, o ne dideli dokumentai.
Efektyvumas: Mažos, fiksuoto dydžio maišos vertės palyginamos greičiau nei dideli duomenų blokai.
Kadangi maišos yra deterministinės ir greitos, jos idealiai tinka tikrinimo užduotims.
Maišos funkcijos naudojimas apima:
Duomenų įvedimą (pvz., failo, eilutės arba slaptažodžio).
Duomenų apdorojimą naudojant maišos algoritmą.
Santraukos gavimą, kuri yra fiksuoto dydžio eilutė, unikaliai atitinkanti įvestį.
Slaptažodžio apsaugai:
Slaptažodį sujunkite su salt (atsitiktiniais duomenimis).
Taikykite saugią maišos funkciją (pvz., „bcrypt“ arba „Argon2“).
Gautus maišos ir salt duomenis saugokite saugiai.
Kadangi Maišos negalima atšaukti, įvestį (kaip slaptažodį) patikrinate dar kartą ją maišydami ir palygindami naują maišą su išsaugota.
Maiša turėtų būti naudojama, kai:
Reikia patikrinti duomenų vientisumą (pvz., tikrinant, ar nėra sugadinimo ar klastojimo).
Slaptažodžiai turi būti saugiai saugomi (neužšifruoti arba paprasto teksto).
Naudojami skaitmeniniai parašai ir sertifikatai (maiša užtikrina dokumento autentiškumą).
Būtinas greitas duomenų palyginimas (pvz., maišos lentelėse arba talpyklose).
Maiša netinka, kai vėliau reikia atkurti originalius duomenis – tam ir skirtas šifravimas.