LLMpediaThe first transparent, open encyclopedia generated by LLMs

bcrypt (software)

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: node-gyp Hop 4
Expansion Funnel Raw 77 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted77
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
bcrypt (software)
Namebcrypt
Titlebcrypt
DeveloperOpenBSD
Released1999
Operating systemUnix-like, Microsoft Windows
GenrePassword hashing, Key derivation
LicenseISC

bcrypt (software) bcrypt is a password hashing and key derivation utility developed for the OpenBSD project by Niels Provos and David Mazieres to provide a resilient replacement for traditional crypt (Unix), MD5 and DES based schemes. It leverages the Blowfish cipher's key schedule and incorporates a configurable work factor to resist brute-force attacks, dictionary attacks and advances in cryptanalysis while being portable across Unix and Windows environments. The design influenced subsequent standards including PBKDF2, scrypt and Argon2, and has been integrated into projects such as OpenSSH, Django (web framework), Ruby on Rails and Linux distributions.

History

bcrypt originated during the late 1990s as part of the OpenBSD initiative to improve system security after incidents like the Solar Sunrise attacks raised awareness of password vulnerabilities; authors Niels Provos and David Mazieres published the design in 1999 and implemented it in the OpenBSD source tree. The algorithm was motivated by weaknesses in existing schemes such as crypt (Unix), DES-based hashing and the then-emerging exploits against MD5 and led to adoption across projects including FreeBSD, NetBSD, OpenSSH, Postfix and web frameworks like Ruby on Rails and Django (web framework). Later commentary and analysis appeared in venues such as USENIX, ACM workshops and security mailing lists maintained by organizations like CERT Coordination Center and influenced newer proposals from researchers affiliated with Columbia University and Technical University of Munich.

Design and algorithm

bcrypt builds on the Blowfish block cipher, reusing its expensive key setup (the EksBlowfish construction) to create a key stretching primitive that mixes a password and salt through repeated key schedule iterations; the construction was detailed in the original paper by Niels Provos and David Mazieres. The algorithm accepts a 128-bit salt and a variable cost parameter (work factor) expressed as a base-2 logarithm, allowing administrators in environments like Debian, Red Hat and Ubuntu to tune computational expense against hardware trends. Outputs are encoded using a modified Base64 alphabet compatible with crypt (Unix) password file formats found on systems including Solaris and FreeBSD, and the format includes identifiers and the cost for interoperability with implementations in languages such as C, Python (programming language), Ruby (programming language), Go (programming language) and Java (programming language). The design emphasizes resistance to parallelized attacks common on GPU clusters and ASIC platforms by relying on an expensive key schedule rather than solely memory-hard functions introduced later by research from groups at Columbia University and Microsoft Research.

Usage and implementations

bcrypt is provided as a command-line utility and library in OpenBSD and has been reimplemented in numerous projects including OpenSSH, Globus Toolkit, Django (web framework), Ruby on Rails, Node.js, PostgreSQL and LibreOffice integrations. Language bindings and packages exist for Python (programming language) (via third-party modules used in Flask and Django (web framework) applications), Ruby (programming language) gems used by Ruby on Rails, Go (programming language) modules used in Kubernetes tooling, and Java (programming language) libraries used in Spring Framework applications. System administrators on distributions such as Debian, Fedora, OpenSUSE and Arch Linux manage bcrypt-hashed passwords in shadow files and integrate bcrypt into authentication stacks like PAM (Pluggable Authentication Modules) and SSSD for enterprise environments like Red Hat Enterprise Linux and cloud services from Amazon Web Services and Google Cloud Platform.

Security analysis and vulnerabilities

Academic and industry analyses by teams from USENIX, ACM, NIST, and researchers at institutions like Stanford University and University of California, Berkeley have evaluated bcrypt's resistance to preimage and collision attacks, noting strong resilience compared to MD5 and SHA-1-based schemes but cautioning about limits against specialized hardware. Threat models discussed by CERT Coordination Center and authors at OpenBSD highlight that bcrypt's CPU-bound cost factor mitigates commodity GPU attacks but is less effective against ASICs and FPGA implementations discussed in papers from IEEE conferences. Vulnerabilities in systems using bcrypt typically arise from poor parameter selection, insufficient salt randomness, and implementation errors in bindings for PHP and JavaScript runtimes; noted incidents involving misconfigured authentication stacks were documented in advisories from US-CERT and vendor bulletins from Red Hat and Debian Security teams. Complementary mitigations often recommend combining bcrypt with account lockout policies used by Active Directory or multi-factor authentication schemes promoted by NIST guidelines.

Performance and benchmarking

Benchmarking studies by research groups at University of Cambridge, MIT, and industry labs at Google and Facebook compare bcrypt with alternatives like PBKDF2, scrypt, and Argon2 across CPU, GPU, and memory metrics; results show bcrypt performing well on CPU-limited platforms but lagging memory-hard designs on parallelized attackers’ cost-efficiency curves. Implementations in OpenBSD and optimized C libraries used in OpenSSH provide stable scaling of the work factor across processor generations cited in reports from SPEC, Phoronix, and distributions' benchmarking suites. Administrators often reference guidance from NIST Special Publications and vendor documentation from Red Hat and Debian when selecting cost parameters to balance authentication latency in environments such as Amazon EC2, Microsoft Azure, and on-premises clusters managed with Kubernetes.

Adoption and applications

bcrypt is widely adopted in operating systems including OpenBSD, FreeBSD, NetBSD, Linux distributions, and in server software such as OpenSSH, Postfix, Dovecot, and web frameworks including Ruby on Rails and Django (web framework). Enterprises using Red Hat Enterprise Linux, SUSE Linux Enterprise Server and cloud providers like Amazon Web Services and Google Cloud Platform integrate bcrypt into identity systems, while projects in the Apache Software Foundation ecosystem and containers orchestrated by Kubernetes often rely on bcrypt libraries for secure password storage. Its longevity and interoperability across languages and platforms—from C and Go (programming language) to Python (programming language) and Java (programming language)—have cemented bcrypt as a standard choice for password hashing in security-conscious deployments.

Category:Password hashing Category:OpenBSD