travist/jsencrypt

A tiny (18.5 kB gzip), zero-dependency, Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 42 minutes ago
Added to GitGenius on September 9th, 2026
Created on February 15th, 2013
Open Issues & Pull Requests: 146 (+0)
GitHub issues: Enabled
Number of forks: 1,995
Total Stargazers: 6,805 (+0)
Total Subscribers: 172 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 12
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,299 days
Stale 30+ days: 12
Stale 90+ days: 12

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

JSEncrypt is a JavaScript library for performing OpenSSL RSA encryption, decryption, and key generation in browsers and Node.js environments.

The library addresses the need for RSA cryptographic operations in JavaScript without introducing heavy dependencies or security concerns. It wraps Tom Wu's jsbn library, providing a thin interface for working with PEM-formatted keys. The tool supports both synchronous and asynchronous execution patterns, allowing developers to choose based on their performance requirements. It handles public key encryption, private key decryption, and can generate RSA key pairs either through OpenSSL (recommended for production) or directly in JavaScript (convenient for testing and demos).

Developers should choose this tool when they need lightweight RSA capabilities without external dependencies. It suits browser-based applications, Node.js servers, and hybrid environments where bundle size matters. The library is particularly valuable for projects that cannot afford the overhead of larger cryptographic libraries. The README emphasizes that for production applications handling sensitive data, OpenSSL-generated keys are more secure than JavaScript-generated ones due to better entropy sources and cryptographically secure random number generators. JavaScript key generation is recommended only for prototyping, testing, educational purposes, or non-critical applications.

The project maintains a stable codebase built on proven cryptographic foundations without modifying core algorithms. Development activity shows ongoing maintenance with attention to both synchronous and asynchronous use cases, support for multiple module formats including ES6 modules and CommonJS, and documentation covering key concepts like public versus private key usage. The tool includes advanced features such as digital signatures and OAEP padding support, alongside documentation of supported hash functions.