Детектор складності пароля
Перевіряє складність пароля, ентропію та поширених слабких місць. Усі перевірки виконуються локально у вашому браузері.
Перевірка складності
- Довжина
- Малі літери
- Великі літери
- Цифри
- Символи
- Послідовність
- Повторення
- Чорний список
- Режим клавіатури
- Дата
- Періодичність
- Здається, все гаразд! На даний момент немає підказок для покращення.
Як користуватися
Особливості функцій
- 100% локальний аналіз, пріоритетний захист конфіденційності.
- Розширені детектори: рухи по клавіатурі, дати, періодичні повторення, послідовності, повторення тощо.
- Відбір за чорним списком з нормалізацією Leet (наприклад, Pa$$w0rd → password).
- Гнучкі політики: мінімальна довжина та вимоги до типів символів.
- Імпорт/експорт політики у форматі JSON одним клік.
- Аналіз у детекторах одним клік
Поширені запитання
Ентропія використовується для оцінки розміру пошукового простору на основі набору символів та довжини. Якщо є структура (шаблон, слово), ефективна ентропія зменшується, навіть якщо початкові біти виглядають високими.
- Послідовні послідовності, наприклад, abcde або 12345.
- Довге повторення одного символу (наприклад, aaaa).
- Відповідність до поширених слабких слів/шаблонів у власному чорному списку.
- Послідовності на клавіатурі або сусідніх клавіш (наприклад, qwerty, asdf).
- Формат дати (наприклад, YYYYMMDD, dd-mm-yyyy).
- Повторення підрядків (наприклад, abcabc, 121212).
- Леет - нормалізація перед перевіркою на відповідність чорному списку (наприклад, Pa$$w0rd → password).
Час розкриття пароля - це лише приблизна оцінка. Фактичні атаки використовують словники, маски та GPU. Короткі паролі з явною структурою часто набагато слабкіші, ніж їхня зовнішня ентропія.
- Переважно використовуйте довгі випадкові фрази (4 або більше слів) або паролі, згенеровані менеджером паролів.
- Уникайте персональної інформації, дат та передбачувальної структури.
- Використовуйте менеджер паролів та, якщо можливо, увімкніть багатофакторну аутентифікацію (MFA).
- Не використовуйте один пароль для різних сайтів; змінюйте пароль лише у разі виникнення небезпеки.
Як перевірити складність пароля за допомогою мов програмування
Нижче наведено мінімальний приклад використання розвинутих бібліотек спільноти, ви можете обрати відповідно до вашого технічного стеку.
<!-- CDN -->
<script src="https://unpkg.com/[email protected]/dist/zxcvbn.js"></script>
<script>
const res = zxcvbn('P@ssw0rd!');
console.log(res.score, res.crack_times_display);
</script>
// npm i @zxcvbn-ts/core
import { zxcvbn } from '@zxcvbn-ts/core';
const result = zxcvbn('P@ssw0rd!');
console.log(result.score, result.guesses_log10);
composer require bjeavons/zxcvbn-php
<?php
require __DIR__ . '/vendor/autoload.php';
use ZxcvbnPhp\\Zxcvbn;
$zxcvbn = new Zxcvbn();
$res = $zxcvbn->passwordStrength('P@ssw0rd!');
echo $res['score'];
pip install zxcvbn
from zxcvbn import zxcvbn
res = zxcvbn('P@ssw0rd!')
print(res['score'], res['crack_times_display'])
go get github.com/nbutton23/zxcvbn-go
package main
import (
"fmt"
zxcvbn "github.com/nbutton23/zxcvbn-go"
)
func main() {
res := zxcvbn.PasswordStrength("P@ssw0rd!", nil)
fmt.Println(res.Score, res.Guesses)
}
# Add dependency
cargo add zxcvbn
use zxcvbn::zxcvbn;
fn main() {
match zxcvbn("P@ssw0rd!", &[]) {
Ok(estimate) => {
println!("score: {}", estimate.score()); // 0..4
if let Some(times) = estimate.crack_times() {
println!("offline: {:?}", times.offline_slow_hashing_1e4_per_second());
}
}
Err(err) => eprintln!("zxcvbn error: {err}"),
}
}
Примітка: ці бібліотеки дають оцінку сили та шаблонів, які можуть трохи відрізнятися від перевірок на цій сторінці.