Node.js-salausmoduuli virtaviivaistaa salaustoimintojen suorittamisprosessia. Näin käytät sitä.
Kryptografia on käytäntö, jossa tietoliikenne ja data suojataan muuntamalla ne muotoihin, jotka vain valtuutetut osapuolet voivat tulkita.
Node.js krypto moduuli on sisäänrakennettu moduuli, joka tarjoaa kryptografisia toimintoja Node.js-sovelluksille. Se tarjoaa useita salausominaisuuksia, mukaan lukien salaus, salauksen purku, hajautus, digitaaliset allekirjoitukset, suojattu satunnaislukujen luominen ja paljon muuta.
Täällä tutustut Node.js-salausmoduulin erilaisiin sovelluksiin ja miten voit käyttää niitä sovellusten suojaamiseen.
Hashing
Hashing on yksisuuntainen salaustekniikka jonka avulla voit muuntaa tietyn avaimen tai merkkijonon kiinteän kokoiseksi tulosteeksi, joka tunnetaan nimellä hash tai tiivistelmä.
Hajautus on yksisuuntainen funktio, mikä tarkoittaa, että kun tiivistät avaimen tai merkkijonon, et voi saada alkuperäistä arvoa luodusta tiivisteestä.
Node.js-salausmoduuli tukee erilaisia hajautustoimintoja, kuten SHA-256, SHA-512, MD5 ja muita.
Voit tiivistää tietoja kryptomoduulin avulla luodaHash menetelmä, joka ottaa hajautusalgoritmin argumenttina. Menetelmä palauttaa a Hash objekti, jota voit käyttää tietojen hajauttamiseen käyttämällä päivittää ja sulattaa menetelmiä.
Esimerkiksi:
konst krypto = vaatia('crypto');
konst data = "Salasana";
// hash-objektin luominen
konst hashAlgo = crypto.createHash("sha256")// tiivistettävien tietojen välittäminen
hashAlgo.update (data);// Hajautusarvon luominen vaaditussa muodossa
konst hash = hashAlgo.digest("heksa");
konsoli.Hirsi(`Hash: ${hash}`);
Yllä olevassa esimerkissä kryptomoduulin luodaHash loi hajautusobjektin kanssa sha256 hajautusalgoritmi. The päivittää hash-objektin menetelmä ottaa syötetiedot ja tiivistää sen. Sitten sulattaa menetelmä ottaa koodausparametrin, joka määrittää ulostulon hash-arvon muodon, ja palauttaa hajautusarvon määritetyssä muodossa (hex).
Hashing on hyödyllinen tietojen eheyden, salasanojen tallennuksen, digitaalisten allekirjoitusten ja muiden tarkistamiseen.
Satunnaisten tietojen luominen
Kryptografisesti suojattua satunnaista dataa tarvitaan usein salakirjoituksessa, pelaamisessa ja testauksessa eri käyttötapauksissa.
Salauksessa voit käyttää satunnaista dataa avainten, suolojen ja alustusvektoreiden luomiseen salaus- ja salauksenpurkualgoritmeja varten.
Pelattaessa voit käyttää satunnaisia tietoja luodaksesi pelitasoja, hahmoja, esineitä ja paljon muuta estääksesi huijaamisen ja varmistaaksesi, että peli ei ole ennakoitavissa.
Testauksessa voit käyttää sitä simuloimaan todellisia skenaarioita ja reunatapauksia.
Voit luoda satunnaisia tietoja käyttämällä Node.js-salausmoduulia satunnaisia tavuja menetelmä. Tämä menetelmä ottaa luvun argumenttina ja palauttaa satunnaisten tavujen puskurin.
Tämä luku edustaa menetelmän luomien tavujen kokoa. Luku ei kuitenkaan saa olla suurempi kuin 2³¹ - 1 (2147483647), joka on suurin arvo, joka voidaan esittää 32-bittisellä etumerkillä varustetulla kokonaisluvulla.
Esimerkiksi:
konst krypto = vaatia("crypto");
// luo satunnaisia tavuja
konst randomBytes = krypto.randomBytes(32);// muuntaa heksadesimaaliksi
konst randomString = randomBytes.toString("heksa");
konsoli.log (randomString); //kirjaa satunnaisen merkkijonon konsoliin
Yllä oleva koodilohko luo ja kirjaa konsoliin satunnaisen 64 heksadesimaalimerkin (32 tavun) merkkijonon.
Salausturvallisen satunnaisdatan luominen on tärkeää, koska se varmistaa, että satunnaiset tiedot eivät ole ennustettavissa ja että hyökkääjät eivät voi manipuloida tai arvata niitä.
Salaus ja salauksen purku Node.js: ssä
Salaus on prosessi, jossa pelkkä teksti muunnetaan lukukelvottomaksi (salausteksti) salausalgoritmin ja salaisen avaimen avulla.
Salauksen purku on salauksen käänteinen. Se on prosessi, jossa salattu teksti muunnetaan takaisin tavalliseksi tekstiksi käyttämällä samaa salausalgoritmia ja avainta.
Node.js-salausmoduuli tukee erilaisia salaus- ja salauksenpurkualgoritmeja, mukaan lukien AES (Advanced Encryption Standard), DES (Data Encryption Standard) ja RSA (Rivest–Shamir–Adleman).
Tietojen salaaminen Node.js: ssä kryptomoduulin avulla
Voit salata tiedot käyttämällä crypto.createCipheriv() menetelmä, joka ottaa syötteenä salausalgoritmin, salaisen avaimen ja alustusvektorin. Salainen avain riippuu käyttämästäsi salausalgoritmista. Esimerkiksi varten aes-256-algoritmi sisään CBC -tilassa avaimen pituuden on oltava 32 tavua.
Menetelmä palauttaa a Salaus objekti, jota voit käyttää tietojen salaamiseen käyttämällä päivittää() ja lopullinen() menetelmiä. Salattu data esitetään tyypillisesti heksadesimaalimerkkijonona tai puskurina.
Esimerkiksi:
konst krypto = vaatia("crypto");
// Luo salainen avain salausta ja salauksen purkamista varten.
konst secretKey = krypto.randomBytes(32);// Luo alustusvektori
konst iv = krypto.randomBytes(16);// salattavat tiedot
konst tavallinen teksti = "Tämä on salainen viesti";// luo salausobjekti
konst salaus = crypto.createCipheriv("aes-256-cbc", salainen avain, iv);// salaa tiedot
antaa encryptedText = cipher.update (plainText, "utf-8", "heksa");// viimeistele salaus
encryptedText += cipher.final("heksa");
konsoli.log (salattu teksti);
Yllä oleva esimerkki osoittaa, kuinka voit salata pelkkää tekstiä käyttämällä aes-256:ta CBC-tilassa käyttämällä kryptomoduulia. Se luo salaisen avaimen ja alustusvektorin käyttämällä crypto.randomBytes menetelmä. Luo sitten salausobjektin käyttämällä crypto.createCipheriv -menetelmällä ja salaa tekstiviestin käyttämällä cipher.update ja cipher.final menetelmiä.
Tuloksena on salatun viestin heksadesimaalimerkkijono, jonka voit purkaa samalla salaisella avaimella ja IV: llä.
Tietojen salauksen purkaminen Node.js: ssä kryptomoduulin avulla
Voit purkaa salatun tiedon salausmoduulin avulla crypto.createDecipheriv() menetelmä, joka ottaa syötteenä salauksenpurkualgoritmin, salaisen avaimen ja alustusvektorin. Menetelmä palauttaa a Tulkita objekti, jota voit käyttää tietojen salauksen purkamiseen käyttämällä Decipher.update() ja Decipher.final() menetelmiä.
Esimerkiksi:
// Luo Decipher-objekti
konst depher = crypto.createDecipheriv("aes-256-cbc", salainen avain, iv);// purkaa tietojen salaus
antaa decryptedText = decrypt.update (encryptedText, "heksa", "utf-8");// viimeistele salauksen purku
decryptedText += decrypted.final("utf-8");
konsoli.log (decryptedText); // Tämä on salainen viesti
Yllä oleva esimerkki osoittaa, kuinka voit purkaa salatun tiedon salauksen käyttämällä samaa algoritmia, salaista avainta ja alustusvektoria, jolla salasit sen.
Se luo Decipher-objektin käyttämällä crypto.createDecipheriv menetelmä. Sitten se purkaa tietojen salauksen käyttämällä depher.update menetelmä, joka ottaa datan, tulokoodauksen ja lähtökoodauksen argumentteina. Lopuksi se päättää salauksen purkuprosessin käyttämällä decrypt.final menetelmä. Tämän menetelmän kutsuminen varmistaa, että Decipher-objektia voidaan enää käyttää tietojen salauksen purkamiseen. Tuloksena on pelkkä tekstimerkkijono.
Salaus ja salauksen purku ovat tärkeitä arkaluonteisten tietojen suojaamisessa ja niiden luottamuksellisuuden säilyttämisessä. Heillä on erilaisia reaalimaailman sovelluksia sähköisessä kaupankäynnissä, verkkopankissa, tietojen tallentamisessa ja muissa.
Muut Node.js-salausmoduulin sovellukset
Hajauksen, kryptografisesti suojattujen satunnaisten tietojen luomisen sekä salauksen ja salauksen purkamisen lisäksi voit myös käyttää Node.js-salausmoduuli digitaalisten allekirjoitusten allekirjoittamiseen ja tarkistamiseen, mikä auttaa varmistamaan digitaalisten allekirjoitusten aitouden ja eheyden asiakirjoja. Lisäksi voit käyttää kryptomoduulia suojaamaan tietovirtoja tiedonsiirtoa varten, jotta estetään tietojen peukalointi ja salakuuntelu lähetyksen aikana.