{"id":21957625,"url":"https://github.com/bitbeans/zxcvbn-cs","last_synced_at":"2025-04-23T16:20:30.721Z","repository":{"id":36393076,"uuid":"40697977","full_name":"bitbeans/zxcvbn-cs","owner":"bitbeans","description":"C#/.NET port of Dan Wheeler/DropBox's Zxcvbn JS password strength estimation library","archived":false,"fork":false,"pushed_at":"2015-08-14T08:23:21.000Z","size":447,"stargazers_count":10,"open_issues_count":0,"forks_count":44,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T01:23:43.930Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitbeans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-14T05:46:09.000Z","updated_at":"2024-12-03T08:36:15.000Z","dependencies_parsed_at":"2022-09-06T08:21:30.922Z","dependency_job_id":null,"html_url":"https://github.com/bitbeans/zxcvbn-cs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitbeans%2Fzxcvbn-cs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitbeans%2Fzxcvbn-cs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitbeans%2Fzxcvbn-cs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitbeans%2Fzxcvbn-cs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitbeans","download_url":"https://codeload.github.com/bitbeans/zxcvbn-cs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250468275,"owners_count":21435453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T08:54:56.046Z","updated_at":"2025-04-23T16:20:30.705Z","avatar_url":"https://github.com/bitbeans.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Zxcvbn C#/.NET\n==============\n\nThis is a port of the `Zxcvbn` JavaScript password strength estimation library at\nhttps://github.com/lowe/zxcvbn to .NET, written in C#.\n\nFrom the `Zxcvbn` readme:\n\n\u003e `zxcvbn`, named after a crappy password, is a JavaScript password strength\n\u003e estimation library. Use it to implement a custom strength bar on a\n\u003e signup form near you!\n\u003e\n\u003e `zxcvbn` attempts to give sound password advice through pattern matching\n\u003e and conservative entropy calculations. It finds 10k common passwords,\n\u003e common American names and surnames, common English words, and common\n\u003e patterns like dates, repeats (aaa), sequences (abcd), and QWERTY\n\u003e patterns.\n\u003e \n\u003e For full motivation, see:\n\u003e\n\u003e http://tech.dropbox.com/?p=165\n\nThis port aims to produce comparable results with the JS version of `Zxcvbn`. The results\nstructure that is returned can be interpreted in the same way as with JS `Zxcvbn` and this\nport has been tested with a variety of passwords to ensure that it return the same results\nas the JS version.\n\nThere are some implementation differences, however, so exact results are not guaranteed.\n\n\n### Using `Zxcvbn-cs`\n\nThe included Visual Studio project will create a single assembly, Zxcvbn.dll, which is all that is\nrequired to be included in your project.\n\nTo evaluate a single password:\n\n``` C#\nusing Zxcvbn;\n\n//...\n\nvar result = Zxcvbn.MatchPassword(\"p@ssw0rd\");\n```\n\nTo evaluate many passwords, create an instance of `Zxcvbn` and then use that to evaluate your passwords. \nThis avoids reloading dictionaries etc. for every password:\n\n``` C#\nusing Zxcvbn;\n\n//...\n\nvar zx = new Zxcvbn();\n\nforeach (var password in passwords)\n{\n\tvar result = zx.EvaluatePassword(password);\n\n\t//...\n}\n```\n\nBoth `MatchPassword` and `EvaluatePassword` take an optional second parameter that contains an enumerable of\nuser data strings to also match the password against.\n\n### Interpreting Results\n\nThe `Result` structure returned from password evaluation is interpreted the same way as with JS `Zxcvbn`:\n\n- `result.Entropy`: bits of entropy for the password\n- `result.CrackTime`: an estimation of actual crack time, in seconds.\n- `result.CrackTimeDisplay`: the crack time, as a friendlier string: \"instant\", \"6 minutes\", \"centuries\", etc.\n- `result.Score`: [0,1,2,3,4] if crack time is less than [10\\*\\*2, 10\\*\\*4, 10\\*\\*6, 10\\*\\*8, Infinity]. (useful for implementing a strength bar.)\n- `result.MatchSequence`: the list of pattern matches that was used to calculate Entropy.\n- `result.CalculationTime`: how long `Zxcvbn` took to calculate the results.\n\n### More Information\n\nFor more information on why password entropy is calculated as it is, refer to `Zxcvbn`s originators:\n\nhttps://github.com/lowe/zxcvbn\n\nhttp://tech.dropbox.com/?p=165\n\n\n### Licence\n\nSince `Zxcvbn-cs` is a port of the original `Zxcvbn` the original copyright and licensing applies. Cf. the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitbeans%2Fzxcvbn-cs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitbeans%2Fzxcvbn-cs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitbeans%2Fzxcvbn-cs/lists"}