node-md5

A tiny, dependency-light JavaScript function for computing MD5 hashes of strings, buffers, and byte arrays.

Library
npm
v2.3.0
913 stars
BSD 3-Clause License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
41 /100 Fair
Development Activity 0
Maintenance 20
Community 56
Maturity 60
Momentum 28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
48 /100 Fair
Architecture 40
Code Quality 45
Innovation 20
Learning Curve 85

md5 is a single-purpose JavaScript library that hashes messages using the MD5 algorithm. It accepts strings, Node.js Buffers, arrays, and Uint8Array instances, and returns a hex digest by default (with options for raw bytes or a binary string). The implementation is a pure-JavaScript port of the classic MD5 algorithm originally published by Ronald Rivest in 1991, adapted from Jeff Mott’s CryptoJS implementation.

Because it has no native bindings and only a handful of small dependencies (crypt, charenc, is-buffer), it works identically in Node.js and in the browser (via bundlers like webpack). It has shipped as the md5 npm package since 2011 and is widely used as a drop-in hashing utility for cache keys, checksums, Gravatar URLs, and other non-cryptographic identity-hashing use cases.

What You Get

  • A single md5(message, options) function that returns a 32-character hex digest by default
  • Support for hashing strings, Node.js Buffers, plain arrays, and Uint8Array instances
  • An asBytes option to get the raw digest as a byte array instead of a hex string
  • An asString option to get the digest as a binary string, plus an encoding: 'binary' option for binary-encoded string input
  • Isomorphic support for both Node.js and browser bundles (webpack config included in the repo)

Common Use Cases

  • Generating Gravatar avatar URLs from a hashed email address
  • Producing cache keys or checksums for request/response deduplication
  • Computing quick file or content fingerprints where cryptographic strength isn’t required
  • Hashing form or upload data client-side before sending it to an API
  • Providing a lightweight MD5 fallback in environments without Node’s built-in crypto module (e.g. certain browser bundles)

Under The Hood

Architecture The library is a single self-contained module (md5.js) wrapped in an IIFE that exports one function. Internally it delegates byte/word conversion to the sibling crypt package and string-encoding handling to charenc, while is-buffer detects Node.js Buffers so the same code path can normalize strings, buffers, arrays, and typed arrays before running the standard MD5 compression rounds (_ff/_gg/_hh/_ii). There is no class hierarchy or plugin surface — all branching for input type and output format happens inline in the exported wrapper, making the whole library effectively one function plus its four auxiliary round functions.

Tech Stack Plain, untyped JavaScript with no build step for the library itself — md5.js is shipped directly as the package’s main entry. It depends on three small same-author-adjacent helper packages (crypt, charenc, is-buffer) rather than a general-purpose crypto framework. Mocha is used for tests and webpack is configured (via webpack.config.js) purely to produce a browser bundle for the demo page, not as part of the published package.

Code Quality test.js runs a small mocha/assert suite covering known hash vectors, Buffer and Uint8Array input, encoding options, and error-throwing on null/undefined input — a reasonable but limited set of cases for a single-function library. There are no TypeScript types, no linter configuration, and no active CI workflow (the README’s Travis badge points at a service the project no longer effectively uses); naming and error handling are simple and consistent throughout the small codebase.

API Design The public surface is intentionally tiny: one function, one options object with three well-documented flags (asBytes, asString, encoding). This minimizes onboarding friction — there is effectively nothing to configure — at the cost of no support for streaming large inputs or incremental hashing, which some hashing libraries offer.

Used by 15 apps in this directory

TypeScript
96%
Other

Cal.diy

Scheduling

48,697

The 100% MIT-licensed, community-driven scheduling platform — self-host your own booking infrastructure with no enterprise strings attached.

View details
91
Repo Health
86
Technical
65
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
Ruby
50%
Other

Chatwoot

Customer Support

37,254

Open-source omnichannel customer support platform with AI-powered agents, live chat, and self-hosting — a full Intercom and Zendesk alternative.

View details
95
Repo Health
78
Technical
69
Dependency
Built with
Ruby 50%
Vue 25%
JavaScript 22%
Updated 6 days ago
TypeScript
99%
AGPL 3.0

Cherry Studio

AI Assistants

52,202

All-in-one AI desktop client with 300+ assistants and multi-model support

View details
89
Repo Health
84
Technical
70
Dependency
Built with
TypeScript 99%
Updated 5 days ago
TypeScript
97%
Other

GrowthBook

Ab Testing Experimentation · Analytics · Developer Tools

8,446

Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.

View details
92
Repo Health
85
Technical
63
Dependency
Built with
TypeScript 97%
Updated 5 days ago
TypeScript
77%
Other

Joplin

Note Taking

56,513

The privacy-first, open-source note-taking app with end-to-end encrypted sync, AI assistance, and a powerful plugin ecosystem across every platform.

View details
93
Repo Health
87
Technical
60
Dependency
Built with
TypeScript 77%
JavaScript 14%
Updated 6 days ago
Java
58%
Apache 2.0

Kestra

Automation · Data Engineering · Devops

28,388

Event-driven orchestration platform for data, AI, and infrastructure workflows — define everything in YAML, run anywhere at scale.

View details
93
Repo Health
81
Technical
72
Dependency
Built with
Java 58%
TypeScript 26%
Vue 15%
Updated 1 weeks ago
TypeScript
71%
Other

LogChimp

Marketing · Product Management

1,132

Collect customer feedback, prioritize features with upvotes, and build transparent product roadmaps — fully self-hosted and open source.

View details
83
Repo Health
77
Technical
73
Dependency
Built with
TypeScript 71%
Vue 27%
Updated 6 days ago
TypeScript
92%
Other

n8n

Automation · No Code Platforms

206,147

Code when you need it, UI when you don't — the workflow automation platform built for technical teams who refuse to choose.

View details
95
Repo Health
87
Technical
65
Dependency
Built with
TypeScript 92%
Updated 5 days ago
TypeScript
97%
MIT

NewsNow

Bookmarks Archiving

21,866

Self-hostable news aggregator with an elegant column layout, GitHub OAuth, adaptive scraping intervals, and seamless Cloudflare D1 or SQLite persistence.

View details
75
Repo Health
74
Technical
71
Dependency
Built with
TypeScript 97%
Updated 2 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers