Hlavním problémem při vytváření hash hesla v JavaScriptu je to, že jej lze snadno uhodnout. Hash heslo je jednoduše řetězec znaků, který je hashován nebo převeden na jedinečné číslo a poté uložen v počítači uživatele. Každý, kdo zná hash heslo, se může snadno přihlásit k uživatelskému účtu, aniž by si musel pamatovat skutečné heslo.
var password = ""; var salt = ""; function hashPassword(password, salt) { var hash = CryptoJS.SHA256(password + salt); return hash.toString(CryptoJS.enc.Hex); }
var heslo = "";
Tento řádek vytvoří proměnnou nazvanou heslo a nastaví ji rovnou prázdnému řetězci.
var salt = "";
Tento řádek vytvoří proměnnou nazvanou salt a nastaví ji rovnou prázdnému řetězci.
function hashPassword(heslo, sůl) {
var hash = CryptoJS.SHA256(heslo + sůl);
return hash.toString(CryptoJS.enc.Hex);
}
Tato funkce přebírá dva parametry, heslo a sůl, a vrací hašovanou verzi hesla pomocí algoritmu SHA256 a formátu Hex kódování.
Hash hesla
Hash hesla jsou typem hesla, které používá kryptografickou hashovací funkci k vytvoření jedinečného hesla pro každého uživatele. Hašovací funkce vezme vstupní řetězec a vytvoří výstupní řetězec s pevnou délkou, který se nazývá hašovací hodnota. Hodnota hash je jedinečná pro každý vstupní řetězec a nesouvisí s původním vstupním řetězcem.
Chcete-li vytvořit heslo hash, musíte nejprve vygenerovat kryptografický hash přihlašovacích údajů vašeho uživatele. Můžete to udělat pomocí MD5 nebo SHA-1 hašovacího algoritmu v závislosti na platformě, kterou používáte. Dále musíte uložit hodnotu hash na bezpečné místo na vašem serveru. Kdykoli se vaši uživatelé přihlásí, budou muset zadat své přihlašovací údaje do vaší aplikace a poté pomocí hodnoty hash vygenerovat své nové heslo.
Práce s hashe
V JavaScriptu se k reprezentaci polí používají hash. Například následující kód vytvoří pole řetězců a uloží je do proměnné s názvem myArray:
myArray = ["a", "b", "c"];
Hodnoty hash můžete také použít k reprezentaci jiných datových typů. Například následující kód vytvoří hash, který ukládá hodnoty „1“ a „2“:
hash = { 1: “1”, 2: “2” }