zxcvbn-core 8.0.0-beta0002

This is a prerelease version of zxcvbn-core.
dotnet add package zxcvbn-core --version 8.0.0-beta0002                
NuGet\Install-Package zxcvbn-core -Version 8.0.0-beta0002                
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="zxcvbn-core" Version="8.0.0-beta0002" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add zxcvbn-core --version 8.0.0-beta0002                
#r "nuget: zxcvbn-core, 8.0.0-beta0002"                
#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.
// Install zxcvbn-core as a Cake Addin
#addin nuget:?package=zxcvbn-core&version=8.0.0-beta0002&prerelease

// Install zxcvbn-core as a Cake Tool
#tool nuget:?package=zxcvbn-core&version=8.0.0-beta0002&prerelease                

Zxcvbn C#/.NET

Build status Coverage Status NuGet

This is a port of the Zxcvbn JavaScript password strength estimation library at https://github.com/lowe/zxcvbn to .NET, written in C#. This fork moves the library to support .Net Core.

From the Zxcvbn readme:

zxcvbn, named after a crappy password, is a JavaScript password strength estimation library. Use it to implement a custom strength bar on a signup form near you!

zxcvbn attempts to give sound password advice through pattern matching and conservative entropy calculations. It finds 10k common passwords, common American names and surnames, common English words, and common patterns like dates, repeats (aaa), sequences (abcd), and QWERTY patterns.

For full motivation, see:

http://tech.dropbox.com/?p=165

This port aims to produce comparable results with the Typescript version of Zxcvbn which I have also put out and is here https://github.com/trichards57/zxcvbn. The results structure that is returned can be interpreted in the same way as with JS Zxcvbn and this port has been tested with a variety of passwords to ensure that it return the same score as the JS version (some other details vary a little).

I have tried to keep the implementation as close as possible, but there is still a chance of some small changes. Let me know if you find any differences and I can investigate.

Using Zxcvbn-cs

The included Visual Studio project will create a single assembly, Zxcvbn.dll, which is all that is required to be included in your project.

To evaluate a password:

using Zxcvbn;

//...

var result = Zxcvbn.Core.EvaluatePassword("p@ssw0rd");

EvaluatePassword takes an optional second parameter that contains an enumerable of user data strings to also match the password against.

Interpreting Results

The Result structure returned from password evaluation is interpreted the same way as with JS Zxcvbn.

  • result.Score: 0-4 indicating the estimated strength of the password.

Licence

Since Zxcvbn-cs is a port of the original Zxcvbn the original copyright and licensing applies. Cf. the LICENSE file.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.3 is compatible.  netstandard1.4 was computed.  netstandard1.5 was computed.  netstandard1.6 was computed.  netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net46 was computed.  net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.6.1

    • No dependencies.
  • .NETStandard 1.3

  • .NETStandard 2.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on zxcvbn-core:

Package Downloads
AuthEd25519

Ultra-simple high-level library for using Ed25519 to manage accounts.

HOG.TezFs

Ultra high level F# Tezos library.

ArchiSteamFarm.Library

ASF is a C# application with primary purpose of idling Steam cards from multiple accounts simultaneously.

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on zxcvbn-core:

Repository Stars
unosquare/passcore
A self-service password management tool for Active Directory
bitwarden/mobile
Retired Bitwarden mobile app for iOS and Android (MAUI/Xamarin).
Version Downloads Last updated
8.0.0-beta0002 49,374 1/22/2022
8.0.0-beta0001 204 1/22/2022
7.0.92 1,174,218 2/12/2021
6.0.84 81,046 10/29/2020
6.0.83 456 10/29/2020
5.0.82 551 10/28/2020
5.0.81 450 10/28/2020
2.1.44 544,202 2/6/2018
2.0.36 1,054 2/3/2018
2.0.28 1,032 2/3/2018
1.1.17 17,207 3/10/2017
1.1.16 956 3/10/2017
1.1.10 44,117 8/6/2016
1.0.9 1,267 8/6/2016
1.0.8 1,258 8/6/2016
1.0.6 1,229 8/6/2016
1.0.5 3,054 8/6/2016