Registry / auth-security / jsencrypt-node

jsencrypt-node

JSON →
library1.0.4jsnpmunverified

JSEncrypt for node & browser. Version 1.0.4 provides RSA encryption/decryption using the JSEncrypt library, compatible with both Node.js and browser environments. It is a fork of the original JSEncrypt by Apipost. The library allows setting public/private keys in PEM format and uses the RSA algorithm. It is suitable for basic RSA operations but note it is a thin wrapper around the original JSEncrypt. No recent updates; release cadence is low.

npm install jsencrypt-node
INSTALL
IMPORT
SIG · JSENCRYPT-NODE
J
jsencrypt-node
auth-securityjavascriptv1.0.4
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

JSEncrypt
import JSEncrypt from 'jsencrypt-node'
const JSEncrypt = require('jsencrypt-node')
ESM default import works; CommonJS requires default import style.
JSEncrypt
const JSEncrypt = require('jsencrypt-node').default
const JSEncrypt = require('jsencrypt-node')
In CommonJS, default export is under .default.
JSEncrypt
const { JSEncrypt } = require('jsencrypt-node')
Named export works in CommonJS.

Demonstrates RSA encryption and decryption using JSEncrypt with public and private PEM keys.

import JSEncrypt from 'jsencrypt-node'; const encrypt = new JSEncrypt(); encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1QQRl0HlrVv6kGqhgonD6A9SU6ZJpnEN+Q0blT/ue6Ndt97WRfxtSAs0QoquTreaDtfC4RRX4o+CU6BTuHLUm+eSvxZS9TzbwoYZq7ObbQAZAY+SYDgAA5PHf1wNN20dGMFFgVS/y0ZWvv1UNa2laEz0I8Vmr5ZlzIn88GkmSiQIDAQAB-----END PUBLIC KEY-----'); const cipher = encrypt.encrypt('Hello, world!'); console.log(cipher); const decrypt = new JSEncrypt(); decrypt.setPrivateKey('-----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQC1QQRl0HlrVv6kGqhgonD6A9SU6ZJpnEN+Q0blT/ue6Ndt97WRfxtSAs0QoquTreaDtfC4RRX4o+CU6BTuHLUm+eSvxZS9TzbwoYZq7ObbQAZAY+SYDgAA5PHf1wNN20dGMFFgVS/y0ZWvv1UNa2laEz0I8Vmr5ZlzIn88GkmSiQIDAQABAoGBAKYDKP4AFlXkVlMEP5hS8FtuSrUhwgKNJ5xsDnFV8sc3yKlmKp1a6DETc7N66t/Wdb3JVPPSAy+7GaYJc7IsBRZgVqhrjiYiTO3ZvJv3nwAT5snCoZrDqlFzNhR8zvUiyAfGD1pExBKLZKNH826dpfoKD2fYlBVOjz6i6dTKBvCJAkEA/GtL6q1JgGhGLOUenFveqOHJKUydBAk/3jLZksQqIaVxoB+jRQNOZjeSO9er0fxgI2kh0NnfXEvH+v326WxjBwJBALfTRar040v71GJq1m8eFxADIiPDNh5JD2yb71FtYzH9J5/d8SUHI/CUFoROOhxr3DpagmrnTn28H0088vubKe8CQDKMOhOwx/tS5lqvN0YQj7I6JNKEaR0ZzRRuEmv1pIpAW1S5gTScyOJnVn1tXxcZ9xagQwlT2ArfkhiNKxjrf5kCQAwBSDN5+r4jnCMxRv/Kv0bUbY5YWVhw/QjixiZTNn81QTk3jWAVr0su4KmTUkg44xEMiCfjI0Ui3Ah3SocUAxECQAmHCjy8WPjhJN8y0MXSX05OyPTtysrdFzm1pwZNm/tWnhW7GvYQpvE/iAcNrNNb5k17fCImJLH5gbdvJJmCWRk=-----END RSA PRIVATE KEY-----'); const plain = decrypt.decrypt(cipher); console.log(plain);
Debug
Known issues
gotchaPrivate key must be in PKCS#1 PEM format (RSA PRIVATE KEY), not PKCS#8 (PRIVATE KEY).
fix
Convert PKCS#8 keys to PKCS#1 using openssl rsa -in key.pem -out pkcs1.pem
affects: >=1.0.0
gotchaDecrypt method may return false if the encrypted string is invalid or key does not match.
fix
Check the return value: if (decrypted === false) { /* handle error */ }
affects: >=1.0.0
gotchaEncrypted output is Base64-encoded, not raw binary. Do not assume hex.
fix
Use ciphertext as-is for Base64; if you need hex, convert via Buffer.
affects: >=1.0.0
Errors
Common errors & fixes
Error: JSEncrypt is not a constructor
Using CommonJS require without .default
fix
Use const JSEncrypt = require('jsencrypt-node').default;
TypeError: this.key is undefined
setPublicKey or setPrivateKey called with invalid PEM or not called at all
fix
Ensure the PEM string is correct and includes BEGIN/END lines with no extra whitespace.
false
Decrypt method returns false when decryption fails (e.g., wrong key, corrupted ciphertext)
fix
Verify the key matches the encryption key and the ciphertext is valid Base64.
Upgrade
Version history
1.0.4latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
13 hits · last 30 days
node
12
OpenAI (training)
1
Resources
jsencrypt-node — npm install jsencrypt-node · libregistry