crypto.createPrivatekey
in Node.Jscrypto
is a Node.Js module that implements an algorithm for data encryption and decryption. This is used for security purposes such as user authentication, where the password is stored in an encrypted form in the database.
The
crypto
module includes hash, HMAC, cipher, decipher, sign, and verify classes.crypto
is embedded into Node.js, so it does not necessitate a lengthy setup and configuration process. You don’t need to installcrypto
before using it in your Node, unlike other modules.
Cryptography is supported via the Node.js crypto
module. It comprises a collection of wrappers for open SSL’s hash HMAC, cipher, decipher, sign, and verify functions, as well as cryptographic features.
Hash is a fixed-length string of bits that is generated arbitrarily and deterministically from some arbitrary source data.
HMAC is an acronym for Hash-based Message Authentication Code. It’s a method for generating a single final hash by applying a hash algorithm to both data and a secret key.
There are different methods for encryption in cryptography:
Symmetric encryption utilizes the same secret key to encode the raw messages at the source, communicate the encrypted message to the recipient, and afterward, decrypt the message.
Asymmetric encryption utilizes two different keys. The public and private keys encrypt and decrypt data.
The public key can be dispersed transparently, while the private key is known uniquely to the owner. A person can encode a message using the recipient’s public key, and it gets decrypted only by the recipient’s private key.
To use the createPrivateKey
, we need to import the crypto module and assign the private or secret key to a variable.
const crypto = require('crypto');
const secretKey= 'abcdefg';
key
string or Arraybuffer
format
string
encoding
string
type
string
The previous versions of
crypto.createPrivateKey(key)
has specific keys.
Versions | Description |
---|---|
15.12.0 | Key can be JWK o |
- | |
15.0.0 | key can be an ArrayBuffer . Encoding option was added and the key cannot contain more than **32-1 bytes |
11.6.0 | PrivateKey added in v11.6.0 |
The key
creates and returns a new key object containing a private key. The key can be a string or a Buffer and when this occurs, the format is assumed to be 'pem'
. Otherwise, key would be an object.
const crypto = require('crypto');const encryption = 'sha256';const secretKey= 'abcdefg';const iv = crypto.randomBytes(16);const encrypted = (text) => {const cipher = crypto.createCipheriv(encryption, secretKey, iv);const encrypted = Buffer.concat([cipher.update(text), cipher.final()]);return {iv: iv.toString('hex'),content: encrypted.toString('hex')};};const decrypted = (hash) => {const decipher = crypto.createDecipheriv(encryption, secretKey, Buffer.from(hash.iv, 'hex'));const decrpyted = Buffer.concat([decipher.update(Buffer.from(hash.content, 'hex')), decipher.final()]);return decrpyted.toString();};module.exports = {encrypted,decrypted};
Crypto can be used to encrypt and decode data in Node.js.
To install it, run npm install crypto-js
, and then use the following functions to encrypt and decrypt.
We have a single hash in the preceding code, which was generated with the crypto
module and the 'sha256'
function.
We created a single hash by encrypting the strings abcdefg
and Welcome to my Page
.