BCrypt.Net.IdentityExtensions 5.0.0-prerelease.gb7ae3b8233

This is a prerelease version of BCrypt.Net.IdentityExtensions.
The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package BCrypt.Net.IdentityExtensions --version 5.0.0-prerelease.gb7ae3b8233
                    
NuGet\Install-Package BCrypt.Net.IdentityExtensions -Version 5.0.0-prerelease.gb7ae3b8233
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BCrypt.Net.IdentityExtensions" Version="5.0.0-prerelease.gb7ae3b8233" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BCrypt.Net.IdentityExtensions" Version="5.0.0-prerelease.gb7ae3b8233" />
                    
Directory.Packages.props
<PackageReference Include="BCrypt.Net.IdentityExtensions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BCrypt.Net.IdentityExtensions --version 5.0.0-prerelease.gb7ae3b8233
                    
#r "nuget: BCrypt.Net.IdentityExtensions, 5.0.0-prerelease.gb7ae3b8233"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BCrypt.Net.IdentityExtensions@5.0.0-prerelease.gb7ae3b8233
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BCrypt.Net.IdentityExtensions&version=5.0.0-prerelease.gb7ae3b8233&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=BCrypt.Net.IdentityExtensions&version=5.0.0-prerelease.gb7ae3b8233&prerelease
                    
Install as a Cake Tool

bcrypt.net - next

The main code, documentation and website refer to V5 which is being prepared for release

Documentation

NuGet

GitHub Actions Workflow Status

[License]

Description

A .Net port of jBCrypt implemented in C#. It uses a variant of the Blowfish encryption algorithm’s keying schedule, and introduces a work factor, which allows you to determine how expensive the hash function will be, allowing the algorithm to be "future-proof".

Details

This is, for all intents and purposes, a direct port of jBCrypt written by Damien Miller. The main differences are the addition of some convenience methods and some mild re-factoring. The easiest way to verify BCrypt.Net's parity with jBCrypt is to compare the unit tests.

For an overview of why BCrypt is important, see How to Safely Store a Password. In general, it's a hashing algorithm that can be adjusted over time to require more CPU power to generate the hashes. This, in essence, provides some protection against Moore's Law. That is, as computers get faster, this algorithm can be adjusted to require more CPU power. The more CPU power that's required to hash a given password, the more time a "hacker" must invest, per password. Since the "work factor" is embedded in the resultant hash, the hashes generated by this algorithm are forward/backward-compatible.

Why BCrypt

From How to Safely Store a Password

It uses a variant of the Blowfish encryption algorithms keying schedule and introduces a work factor, which allows you to determine how expensive the hash function will be. Because of this, BCrypt can keep up with Moore’s law. As computers get faster you can increase the work factor and the hash will get slower.

Nuget

Package: https://www.nuget.org/packages/BCrypt.Net-Next/ NuGet

Quick Start

To Hash a password:

File-scoped namespaces are shown; imagine curly brackets if you need to.

Top level namespace

namespace MyDotNetProject;

using BCryptNet;

// Hash a password
string passwordHash =  BCrypt.HashPassword("my password");

// Verify a password
if(BCrypt.Verify("my password", passwordHash))
{
    // Password is correct
}

Note: Although this library allows you to supply your own salt, it is highly advisable that you allow the library to generate the salt for you. These methods are supplied to maintain compatibility and for more advanced cross-platform requirements that may necessitate their use.

This implementation on hashing will generate a salt automatically for you with the work factor (2^number of rounds) set to 11 (which matches the default across most implementation and is currently viewed as a good level of security/risk).

There are various examples in our test-harness folder and unit-tests

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated