Suurin ongelma JavaScript-salasanan luomisessa on, että se on helppo arvata. Hajasalasana on yksinkertaisesti merkkijono, joka tiivistetään tai muunnetaan yksilöiväksi numeroksi ja tallennetaan sitten käyttäjän tietokoneelle. Jokainen, joka tietää hash-salasanan, voi helposti kirjautua sisään käyttäjän tilille ilman, että hänen tarvitsee muistaa varsinaista salasanaa.
var password = ""; var salt = ""; function hashPassword(password, salt) { var hash = CryptoJS.SHA256(password + salt); return hash.toString(CryptoJS.enc.Hex); }
var salasana = "";
Tämä rivi luo muuttujan nimeltä salasana ja asettaa sen yhtä suureksi kuin tyhjä merkkijono.
var suola = "";
Tämä rivi luo muuttujan nimeltä suola ja asettaa sen yhtä suureksi kuin tyhjä merkkijono.
function hashPassword(salasana, suola) {
var hash = CryptoJS.SHA256(salasana + suola);
return hash.toString(CryptoJS.enc.Hex);
}
Tämä toiminto ottaa kaksi parametria, salasanan ja suolan, ja palauttaa salasanan hajautetun version käyttämällä SHA256-algoritmia ja Hex-koodausmuotoa.
Hash salasanat
Hash-salasanat ovat salasanojen tyyppi, joka käyttää kryptografista hajautustoimintoa yksilöllisen salasanan luomiseen kullekin käyttäjälle. Hash-funktio ottaa syötemerkkijonon ja tuottaa kiinteän pituisen tulostejonon, jota kutsutaan hash-arvoksi. Hajautusarvo on yksilöllinen jokaiselle syötemerkkijonolle, eikä se liity alkuperäiseen syöttömerkkijonoon.
Hajasalasanan luomiseksi sinun on ensin luotava salaustiiviste käyttäjän kirjautumistiedoista. Voit tehdä tämän käyttämällä MD5- tai SHA-1-hajautusalgoritmia käyttämästäsi alustasta riippuen. Seuraavaksi sinun on tallennettava hash-arvo turvalliseen paikkaan palvelimellasi. Aina kun käyttäjäsi kirjautuvat sisään, heidän on syötettävä kirjautumistietonsa sovellukseesi ja käytettävä sitten hash-arvoa uuden salasanan luomiseen.
Työskentele tiivisteiden kanssa
JavaScriptissä tiivisteitä käytetään esittämään taulukoita. Esimerkiksi seuraava koodi luo merkkijonotaulukon ja tallentaa sen muuttujaan nimeltä myArray:
myArray = ["a", "b", "c"];
Voit myös käyttää tiivistettä edustamaan muita tietotyyppejä. Esimerkiksi seuraava koodi luo tiivisteen, joka tallentaa arvot "1" ja "2":
hash = { 1: "1", 2: "2" }