Detektor siły hasła

Sprawdź siłę hasła, wartość entropii i typowe słabe punkty. Wszystkie sprawdzenia są wykonywane lokalnie w Twojej przeglądarce.

Sprawdzenie siły

Entropia
Siła:
Szacowany czas złamania offline (szybkie GPU)
Szacowany czas złamania online (ograniczona prędkość)
Wyniki sprawdzenia
  • Długość
  • Małe litery
  • Duże litery
  • Cyfry
  • Znaki specjalne
  • Sekwencje
  • Powtórzenia
  • Lista czarna
  • Schemat klawiatury
  • Data
  • Periodyczność
Konfiguracja zasad
Oddzielone przecinkami, bez rozróżniania wielkości liter. Obsługuje normalizację Leet (np. Pa$$w0rd → password).
Sugestie dotyczące poprawy
Informacja o prywatności: Detekcja odbywa się całkowicie lokalnie w Twojej przeglądarce, hasło nie jest przesyłane.

Sposób użycia

Analizuj hasło lokalnie i otrzymuj wykonalne sugestie dotyczące poprawy.
1) Wpisz lub wklej hasło; wyniki będą aktualizowane w czasie rzeczywistym.
2) Dostosuj zasady według potrzeb (minimalna długość / wymagania dotyczące typów znaków).
3) Dodaj typowe słabe słowa do listy czarnej, aby ułatwić identyfikację (obsługuje normalizację Leet).
4) Użyj funkcji importu/eksportu, aby udostępnić ustawienia zasad.

Funkcje i zalety

  • 100% lokalna analiza, z priorytetem na ochronę prywatności.
  • Zaawansowane detektory: ruchy po klawiaturze, daty, powtórzenia periodyczne, sekwencje, powtórzenia itp.
  • Dopasowywanie czarnej listy z normalizacją Leet (np. Pa$$w0rd → password).
  • Elastyczne zasady: minimalna długość i wymagania dotyczące typów znaków.
  • Import/eksport zasad w formacie JSON jednym kliknięciem.
  • Analiza w detektorze jednym kliknięciem

Porównanie haseł

Wynik porównania
Entropia (A): Entropia (B):

Najczęściej zadawane pytania

Czy moje hasło będzie przesyłane do serwera?
Nie. Wszystkie analizy są wykonywane tylko w Twojej przeglądarce.
Co oznacza „entropia”?
Roughly mówi o tym, ile prób potrzeba, aby odgadnąć hasło. W przypadku struktur hasła, rzeczywista siła hasła może być niższa.
Dlaczego wynik spadł?
Wzorce takie jak sekwencje, daty lub ruchy po klawiaturze obniżają siłę hasła.

Raport

Raport nie zawiera tekstu Twojego hasła, tylko wskaźniki i ustawienia.

Warto wiedzieć
Entropia

Entropia służy do oszacowania wielkości przestrzeni wyszukiwania na podstawie zestawu znaków i długości. Jeśli hasło ma strukturę (wzorce, słowa), nawet jeśli pierwotna ilość bitów wydaje się wysoka, skuteczna entropia zostanie zmniejszona.

Wyjaśnienie elementów detekcji
  • Sekwencje uporządkowane, np. abcde lub 12345.
  • Długie powtórzenia tego samego znaku (np. aaaa).
  • Pasuje do słabych słów/wzorców z niestandardowej czarnej listy.
  • Sekwencje klawiszy na klawiaturze lub sąsiednich klawiszy (np. qwerty, asdf).
  • Formaty daty (np. YYYYMMDD, dd-mm-yyyy).
  • Powtarzające się podciągi (np. abcabc, 121212).
  • Normalizacja Leet przed dopasowaniem do czarnej listy (np. Pa$$w0rd → password).
Uwaga dotycząca czasu złamania

Czas złamania to tylko szacunkowa wartość. W rzeczywistych atakach używa się słowników, mask i GPU. Krótkie hasła o wyraźnej strukturze są często znacznie słabsze niż wskazuje na to ich entropia.

Najlepsze praktyki
  • Wartośćuj dłuższe losowe frazy dostępu (4 lub więcej słów) lub hasła wygenerowane przez menedżera haseł.
  • Unikaj informacji osobistych, dat i przewidywalnych struktur.
  • Używaj menedżera haseł i jak najczęściej włączaj uwierzytelnianie wieloskładnikowe (MFA).
  • Nie używaj ponownie haseł; zmieniaj je tylko w przypadku wycieku.

Jak sprawdzić siłę hasła za pomocą języka programowania

Oto minimalny przykład wykorzystania udoskonalonych bibliotek społecznościowych. Możesz wybrać zgodnie ze swoim stosem technologicznym.

JavaScript
<!-- 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>
                        
Node.js
// npm i @zxcvbn-ts/core
import { zxcvbn } from '@zxcvbn-ts/core';

const result = zxcvbn('P@ssw0rd!');
console.log(result.score, result.guesses_log10);
                        
PHP
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'];
                        
Python
pip install zxcvbn
                        
from zxcvbn import zxcvbn

res = zxcvbn('P@ssw0rd!')
print(res['score'], res['crack_times_display'])
                        
Go
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)
}
                        
Rust
# 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}"),
    }
}
                        

Uwaga: Te biblioteki podają oszacowania siły i wzorców, które mogą nieco różnić się od pozycji detekcji na tej stronie.