Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
node-cipher
Advanced tools
Securely encrypt sensitive files for use in public source control. Find on NPM.
Looking for the command line tool? Click here.
Why would I want to encrypt my files?
Let's say you have a file in your project name config.json
which contains sensitive information like private keys and database passwords.
What happens if you want to publicly host a repository containing this file? Certainly you wouldn't want to make the contents of config.json
visible to the outside world, so instead you can use node-cipher to encrypt the file and add its encrypted counterpart to source control, which can later be decrypted using the encryption key when the repository is cloned.
Just don't forget to add the original config.json
file to .gitignore
!
$ npm install node-cipher
Name | Type | Description | Required | Default |
---|---|---|---|---|
input | string | The input file. | ✓ | |
output | string | The output file. | ✓ | |
password | string | The key that you will use to encrypt or decrypt your input file. If you are decrypting a file, the password must be the same as the one specified during encryption, or else the decryption will fail. | ✓ | |
algorithm | string | The cipher algorithm to use. Use list() to see a list of available cipher algorithms. | "cast5-cbc" |
encrypt(options[, callback[, scope]])
Encrypts a file using the options provided.
Parameter | Type | Description | Required | Default |
---|---|---|---|---|
options | Object | See options. | ✓ | |
callback | Function | The function to call when the encryption has completed. | ||
scope | Object | The Function scope for the callback parameter, if provided. | null |
Encrypts config.json
into config.encrypted.json
using the password "b0sco"
.
let nodecipher = require('node-cipher');
nodecipher.encrypt({
input: 'config.json',
output: 'config.encrypted.json',
password: 'b0sco'
}, function (err) {
if (err) throw err;
console.log('config.json encrypted.');
});
encryptSync(options)
The synchronous version of encrypt()
.
Parameter | Type | Description | Required | Default |
---|---|---|---|---|
options | Object | See options. | ✓ |
Synchronously encrypts config.json
into config.encrypted.json
using the password "b0sco"
.
let nodecipher = require('node-cipher');
nodecipher.encryptSync({
input: 'config.json',
output: 'config.encrypted.json',
password: 'b0sco'
});
decrypt(options[, callback[, scope]])
Decrypts a file using the options provided.
Parameter | Type | Description | Required |
---|---|---|---|
options | Object | See options. | ✓ |
callback | Function | The function to call when the decryption has completed. | |
scope | Object | The Function scope for the callback parameter, if provided. |
Decrypts config.encrypted.json
back into config.json
using the password "b0sco"
.
let nodecipher = require('node-cipher');
nodecipher.decrypt({
input: 'config.encrypted.json',
output: 'config.json',
password: 'b0sco'
}, function (err) {
if (err) throw err;
console.log('config.encrypted.json decrypted.');
});
decryptSync(options)
The synchronous version of decrypt()
.
Parameter | Type | Description | Required | Default |
---|---|---|---|---|
options | Object | See options. | ✓ |
Synchronously decrypts config.encrypted.json
back into config.json
using the password "b0sco"
.
let nodecipher = require('node-cipher');
nodecipher.decryptSync({
input: 'config.encrypted.json',
output: 'config.json',
password: 'b0sco'
});
list():Array
Lists all available cipher algorithms as an Array.
let nodecipher = require('node-cipher');
console.log(nodecipher.list());
// => ['CAST-cbc', 'aes-128-cbc', ..., 'seed-ofb']
MIT
FAQs
Securely encrypt sensitive files for use in public source control.
The npm package node-cipher receives a total of 47 weekly downloads. As such, node-cipher popularity was classified as not popular.
We found that node-cipher demonstrated a not healthy version release cadence and project activity because the last version was released 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.