A Delphi library for securely hashing and verifying passwords using the BCrypt algorithm.
BCrypt is a Delphi library that implements the BCrypt password hashing algorithm for securely storing and verifying user passwords. It provides functions to generate hashes with configurable cost factors, compare passwords against hashes, and extract hash metadata. The library addresses the need for robust password security in Delphi applications, protecting against common cryptographic attacks.
Delphi developers building applications that require secure user authentication and password storage, such as desktop software, enterprise systems, or cross-platform tools.
Developers choose this library for its native Delphi implementation, ease of integration, and adherence to BCrypt's proven security standards, offering a reliable alternative to rolling custom password hashing solutions.
BCrypt is a password hashing function
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides simple methods like TBCrypt.GenerateHash and CompareHash, making integration into Delphi code effortless without complex configurations, as shown in the README usage examples.
Allows setting cost factors from 10 to 30 and supports multiple hash types (PHP, BSD, Default), enabling developers to tailor security based on evolving needs, as detailed in the hash generation parameters.
Works on Windows, macOS, and Linux, ensuring compatibility for Delphi applications targeting diverse operating systems, highlighted by the badges and documentation.
Includes functions for hash verification, metadata extraction (cost, salt, type via TBCrypt.GetHashInfo), and rehash detection, aiding in security audits and updates, as outlined in the feature list.
Only implements BCrypt, an older algorithm, and lacks support for newer standards like Argon2, which might not future-proof against evolving cryptographic attacks, as admitted by not including alternatives.
Tied specifically to Delphi, making it unsuitable for projects using other languages or requiring multi-language interoperability, limiting its utility in mixed-technology environments.
Recommends using the Boss dependency manager for installation, which adds an extra setup step and potential learning curve for developers not already using it, compared to simpler library inclusion methods.