pidcrypt
v0.0.33
Published
Node.js / browserify wrapper for the JS encryption libraries
Downloads
2,658
Readme
Pidcrypt (JS encryption library) for node.js/browserify
This is a copy of the pidCrypt javascript crypto library with some modifications to make it compatible with node.js and browserify. Pidcrypt submodules are all accessible via require
, and will automatically pull in any other submodule dependencies if needed.
Installation
npm install --save pidcrypt
Usage:
Encrypting text via AES (CBC)
AES CBC is a relatively easy to use symmetric encryption method that has the added convenience of being compatible with openssl
(included on almost any *nix machine as well)
// Require seedrandom.js first to increase randomness for stronger encryption
require("pidcrypt/seedrandom")
var pidCrypt = require("pidcrypt")
require("pidcrypt/aes_cbc")
var aes = new pidCrypt.AES.CBC()
var pw = "some password";
var encrypted = aes.encryptText("some text", pw);
console.log("Encrypted text is: '%s'", encrypted);
// Encrypted text is: 'U2FsdGVkX19yGT01gBIBMJCEM7cBW6vc3ND06CyKu1w='
var decrypted = aes.decryptText(encrypted, pw);
console.log("Original text was: '%s'", decrypted);
// Original text was 'some text'
To perform the same encryption via openssl you'd use:
echo "some text" | openssl enc -aes-256-cbc -a -pass 'pass:some password'
Decyrpting text via AES (CBC)
// Require seedrandom.js first to increase randomness for stronger encryption
require("pidcrypt/seedrandom")
var pidCrypt = require("pidcrypt")
require("pidcrypt/aes_cbc")
var aes = new pidCrypt.AES.CBC()
var pw = "some password";
var encryptedText = 'U2FsdGVkX19yGT01gBIBMJCEM7cBW6vc3ND06CyKu1w=';
var decrypted = aes.decryptText(encryptedText, pw);
console.log("Decrypted text is: '%s'", decrypted);
// Decrypted text is: 'some text'
To decrypt this via openssl
you'd use:
echo U2FsdGVkX19yGT01gBIBMJCEM7cBW6vc3ND06CyKu1w= | openssl enc -aes-256-cbc -d -a -pass 'pass:some password'
Other encryption formats
You can load any of the modules included with pidcrypt in the same manner as the aes_cbc
module. For convenience here are all the included encryption/decryption modules:
aes_cbc
aes_ctr
asn1
jsbn
md5
prng4
rsa
sha1
sha256
sha512
You can use any module in the same manner as above:
// load pidcrypt
var pidCrypt = require("pidcrypt");
// grab your module
require("pidcrypt/<your module>");
// do stuff as per the pidcrypt documentation for that module...
See documentation on the pidcrypt site for more details.