Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3501174
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T12:49:34+00:00 2026-05-18T12:49:34+00:00

I have read that when hashing a password, many programmers recommend using the BCrypt

  • 0

I have read that when hashing a password, many programmers recommend using the BCrypt algorithm.

I am programming in C# and is wondering if anyone knows of a good implementation for BCrypt? I found this page, but I don’t really know if it is bogus or not.

What should I be aware of when choosing a password hashing scheme? Is BCrypt a ‘good’ implementation?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T12:49:35+00:00Added an answer on May 18, 2026 at 12:49 pm

    First, some terms that are important:

    Hashing – The act of taking a string and producing a sequence of characters that cannot be reverted to the original string.

    Symmetric Encryption – (Usually just referred to as ‘encryption’) – The act of taking a string and producing a sequence of characters that can be decrypted to the original string through the use of the same encryption key that encrypted it.

    Rainbow Table – a lookup table that contains all variations of characters hashed in a specific hashing algorithm.

    Salt – a known random string appended to the original string before it is hashed.

    For the .NET Framework, Bcrypt does not yet have a verified reference implementation. This is important because there’s no way to know if there are serious flaws in an existing implementation. You can get an implementation of BCrypt for .NET here. I don’t know enough about cryptography to say whether it’s a good or bad implementation. Cryptography is a very deep field. Do not attempt to build your own encryption algorithm. Seriously.

    If you are going to implement your own password security (sigh), then you need to do several things:

    1. Use a relatively secure hash algorithm.
    2. Salt each password before it’s hashed.
    3. Use a unique and long salt for each password, and store the salt with the password.
    4. Require strong passwords.

    Unfortunately, even if you do all this, a determined hacker still could potentially figure out the passwords, it would just take him a really long time. That’s your chief enemy: Time.

    The bcrypt algorithm works because it takes five orders of magnitude longer to hash a password than MD5; (and still much longer than AES or SHA-512). It forces the hacker to spend a lot more time to create a rainbow table to lookup your passwords, making it far less likely that your passwords will be in jeopardy of being hacked.

    If you’re salting and hashing your passwords, and each salt is different, then a potential hacker would have to create a rainbow table for each variation of salt, just to have a rainbow table for one salted+hashed password. That means if you have 1 million users, a hacker has to generate 1 million rainbow tables. If you’re using the same salt for every user, then the hacker only has to generate 1 rainbow table to successfully hack your system.

    If you’re not salting your passwords, then all an attacker has to do is to pull up an existing Rainbow table for every implementation out there (AES, SHA-512, MD5) and just see if one matches the hash. This has already been done, an attacker does not need to calculate these Rainbow tables themselves.

    Even with all this, you’ve got to be using good security practices. If they can successfully use another attack vector (XSS, SQL Injection, CSRF, et. al.) on your site, good password security doesn’t matter. That sounds like a controversial statement, but think about it: If I can get all your user information through a SQL injection attack, or I can get your users to give me their cookies through XSS, then it doesn’t matter how good your password security is.

    Other resources:

    1. Jeff Atwood: .NET Encryption Simplified (great for an overview of hashing)
    2. Jeff Atwood: I just logged in as you
    3. Jeff Atwood: You’re probably storing passwords incorrectly
    4. Jeff Atwood: Speed Hashing

    Note: Please recommend other good resources. I’ve must have read a dozen articles by dozens of authors, but few write as plainly on the subject as Jeff does. Please edit in articles as you find them.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have read that to match a word inside of a string using Regular
I have read about how to implement security into a website using hashing, and
I have been reading up on password hashing, but all the forums I read
I have read that select and multi-threaded programming were low performing IO models, for
I have read that it is a good practice to not use too many
I have read that using database keys in a URL is a bad thing
I have just read many, many articles on SO about hashing passwords with salt
I have read that GLSL (specifically v1.0.17: my application is running under WebGL) compilers
I have read that in Java interfaces can't be instantiated ( in the documentation,
I have read that you should keep the number of connections in your database

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.