Can someone explain how BCrypt verifies a hash?
A BCrypt hash string looks like: $2a$10$Ro0CUfOqk6cXEKf3dyaM7OhSCvnwM9s4wIX9JeLapehKK5YdLxKcm \__/\/ \____________________/\_____________________________/ | | Salt Hash | Cost Version Where 2a: Algorithm Identifier (BCrypt, UTF8 encoded password, null terminated) 10: Cost Factor (210 = 1,024 rounds) Ro0CUfOqk6cXEKf3dyaM7O: OpenBSD-Base64 encoded salt (16 bytes ⇒ 22 characters) hSCvnwM9s4wIX9JeLapehKK5YdLxKcm: OpenBSD-Base64 encoded hash (24 bytes ⇒ 31 characters) Edit: i just noticed … Read more