Skip to content

Add hash bcrypt#13318

Closed
kishore-144 wants to merge 1 commit intoTheAlgorithms:masterfrom
kishore-144:add-bcrypt
Closed

Add hash bcrypt#13318
kishore-144 wants to merge 1 commit intoTheAlgorithms:masterfrom
kishore-144:add-bcrypt

Conversation

@kishore-144
Copy link

🧩 Add bcrypt Algorithm (Custom Implementation)

Summary

This PR introduces a bcrypt algorithm reimplementation built entirely from scratch in Python — without relying on external bcrypt libraries. The goal is to provide an educational yet functional version of the real bcrypt algorithm that demonstrates its internal structure, including the EksBlowfish key setup, salted key expansion, and configurable cost factor.

Key Details

  • Implements the core EksBlowfish logic (P-array, S-boxes, and Feistel network).

  • Supports variable cost rounds (2^cost), simulating bcrypt’s computational scaling.

  • Includes helper methods for hashing and verification (bcrypt_hash and bcrypt_check).

  • Cleanly written for readability, with developer comments explaining each major step.

  • No external dependencies — pure Python implementation.

Purpose

This PR aims to help developers understand how bcrypt works internally rather than using it as a black-box library. While it is not intended for production-grade security, it serves as a reference for studying password hashing and key expansion mechanisms.

Notes

-- Output format follows bcrypt-style structure for familiarity.

-- Future improvement: Optimize key schedule performance and integrate official test vectors for validation.

@algorithms-keeper
Copy link

Closing this pull request as invalid

@kishore-144, this pull request is being closed as none of the checkboxes have been marked. It is important that you go through the checklist and mark the ones relevant to this pull request. Please read the Contributing guidelines.

If you're facing any problem on how to mark a checkbox, please read the following instructions:

  • Read a point one at a time and think if it is relevant to the pull request or not.
  • If it is, then mark it by putting a x between the square bracket like so: [x]

NOTE: Only [x] is supported so if you have put any other letter or symbol between the brackets, that will be marked as invalid. If that is the case then please open a new pull request with the appropriate changes.

@algorithms-keeper algorithms-keeper bot closed this Oct 7, 2025
@algorithms-keeper algorithms-keeper bot added the awaiting reviews This PR is ready to be reviewed label Oct 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting reviews This PR is ready to be reviewed invalid

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant