![Introducing Enhanced Alert Actions and Triage Functionality](https://cdn.sanity.io/images/cgdhsj6q/production/fe71306d515f85de6139b46745ea7180362324f0-2530x946.png?w=800&fit=max&auto=format)
Product
Introducing Enhanced Alert Actions and Triage Functionality
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
crypto-js
Advanced tools
Package description
The crypto-js npm package is a library of cryptographic algorithms implemented in JavaScript. It's commonly used for secure encryption and decryption of data, hashing, and generating secure random bytes. It's suitable for both server-side and client-side applications in JavaScript.
Encryption and Decryption
This feature allows you to encrypt and decrypt messages using various algorithms like AES, DES, Triple DES, Rabbit, and RC4. The code sample demonstrates how to encrypt and decrypt a message using AES.
{"encrypt": "CryptoJS.AES.encrypt('my message', 'secret key').toString()", "decrypt": "CryptoJS.AES.decrypt(encryptedMessage, 'secret key').toString(CryptoJS.enc.Utf8)"}
Hashing
Crypto-js can be used to hash data using algorithms like SHA-256, SHA-512, MD5, and more. The code sample shows how to hash a message using SHA-256 and SHA-512.
{"SHA256": "CryptoJS.SHA256('message').toString()", "SHA512": "CryptoJS.SHA512('message').toString()"}
HMAC (Hash-based Message Authentication Code)
This feature provides a way to verify both the data integrity and the authenticity of a message with a secret key. The code sample demonstrates generating an HMAC with the SHA-256 algorithm.
{"HMAC": "CryptoJS.HmacSHA256('message', 'secret').toString()"}
Progressive Ciphering
For large amounts of data, progressive ciphering allows you to encrypt or decrypt data in chunks rather than all at once. The code sample demonstrates how to encrypt data progressively.
{"progressiveCiphering": "var aesEncryptor = CryptoJS.algo.AES.createEncryptor('secret key', { iv: CryptoJS.enc.Hex.parse('0000000000000000') }); var ciphertextPart1 = aesEncryptor.process('part1 '); var ciphertextPart2 = aesEncryptor.process('part2 '); var ciphertextPart3 = aesEncryptor.process('part3 '); var ciphertextPart4 = aesEncryptor.finalize(); var encryptedMessage = ciphertextPart1.concat(ciphertextPart2).concat(ciphertextPart3).concat(ciphertextPart4).toString();"}
Secure Random Bytes Generation
Crypto-js can generate secure random bytes, which are useful for creating salts, keys, and other cryptographic elements. The code sample shows how to generate a random 16-byte string.
{"randomBytes": "CryptoJS.lib.WordArray.random(16).toString()"}
bcryptjs is a pure JavaScript implementation of the bcrypt password hashing function. It is useful for securely storing passwords. Unlike crypto-js, which offers a variety of cryptographic operations, bcryptjs focuses specifically on password hashing and is often used for this purpose in web applications.
node-forge is a native JavaScript implementation of various networking and cryptography tools including TLS, SSH, and various cryptographic algorithms. It is similar to crypto-js but offers additional features like TLS and SSH protocol support, making it suitable for more complex cryptographic tasks.
libsodium-wrappers provides a high-level API for libsodium, a modern and easy-to-use crypto library. It offers similar functionalities to crypto-js but focuses on high-performance operations and is based on the NaCl library, which is designed to be fast and secure.
Readme
Modularized port of googlecode project crypto-js.
Requirements:
npm install crypto-js
Modular include:
var AES = require("crypto-js/aes");
var SHA256 = require("crypto-js/sha256");
...
console.log(SHA256("Message"));
Including all libraries, for access to extra methods:
var CryptoJS = require("crypto-js");
console.log(CryptoJS.HmacSHA1("Message", "Key"));
Modular include:
require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) {
console.log(SHA256("Message"));
});
Including all libraries, for access to extra methods:
require("crypto-js", function (CryptoJS) {
console.log(CryptoJS.HmacSHA1("Message", "Key"));
});
FAQs
JavaScript library of crypto standards.
The npm package crypto-js receives a total of 5,829,387 weekly downloads. As such, crypto-js popularity was classified as popular.
We found that crypto-js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
Security News
Polyfill.io has been serving malware for months via its CDN, after the project's open source maintainer sold the service to a company based in China.
Security News
OpenSSF is warning open source maintainers to stay vigilant against reputation farming on GitHub, where users artificially inflate their status by manipulating interactions on closed issues and PRs.