Detektor síly hesla

Detekujte sílu hesla, entropii a běžné slabiny. Všechny detekce probíhají lokálně ve vašem prohlížeči.

Testování síly

Entropie
Síla:
Odhadovaný čas prolomení offline (rychlý GPU)
Odhadovaný čas prolomení online (omezená rychlost)
Výsledky testování
  • Délka
  • Malá písmena
  • Velká písmena
  • Číslice
  • Symboly
  • Sekvence
  • Opakování
  • Černá listina
  • Klávesnicový vzor
  • Datum
  • Perioda
Nastavení pravidel
Oddělené čárkami, nerozlišuje se velikost písmen. Podporuje Leet normalizaci (např. Pa$$w0rd → password).
Doporučení k vylepšení
Ochrana soukromí: Detekce probíhá plně v rámci vašeho prohlížeče, heslo se nenačte na server.

Postup použití

Analyzujte heslo lokálně a získáte proveditelné doporučení k vylepšení.
1) Zadejte nebo vložte heslo; výsledky se budou aktualizovat v reálném čase.
2) Upravte pravidla podle potřeby (minimální délka / požadavky na typy znaků).
3) Přidejte do černé listiny běžné slabé slova k pomoci při identifikaci (podporuje Leet normalizaci).
4) Sdílejte nastavení pravidel pomocí importu / exportu.

Funkční výhody

  • 100% lokální analýza, s prioritou ochrany soukromí.
  • Pokročilé detekce: klávesové posouvání, data, periodické opakování, pořadí, opakování atd.
  • Leet normalizace shody v černé listině (např. Pa$$w0rd → password).
  • Flexibilní zásady: minimální délka a požadavky na typy znaků.
  • Jedno kliknutí na import/export zásad JSON.
  • Jedno kliknutí na analýzu v detektoru

Porovnání hesel

Výsledek porovnání
Entropie (A): Entropie (B):

Časté dotazy

Bude mé heslo nahráno?
Ne. Všechny analýzy se provádějí pouze ve vašem prohlížeči.
Co znamená „entropie“?
Zhruba to znamená, kolikrát je třeba zkusit, aby se heslo uhádlo. Při existenci struktury se skutečná síla snižuje.
Proč se skóre snížilo?
Vzory jako sekvence, data nebo klávesové posouvání snižují sílu hesla.

Zpráva

Zpráva neobsahuje text vašeho hesla, pouze obsahuje ukazatele a nastavení.

Související znalosti
Entropie

Entropie slouží k odhadu velikosti vyhledávacího prostoru na základě znakové sady a délky. Pokud existuje struktura (vzor, slovo), platná entropie se snižuje, i když původní bity mohou vypadat vysoké.

Popis detektorů
  • Sekvence znaků v pořadí, např. abcde nebo 12345.
  • Dlouhé opakování stejného znaku (např. aaaa).
  • Shoda s běžnými slabými slovy/vzory v vlastní černé listině.
  • Klávesniční sekvence nebo sousední klávesy (např. qwerty, asdf).
  • Formát data (např. YYYYMMDD, dd-mm-yyyy).
  • Opakující se podřetězce (např. abcabc, 121212).
  • Normalizace Leet před shodou s černou listinou (např. Pa$$w0rd → password).
Upozornění k době prolomení

Doba prolomení je pouze hrubý odhad. Skutečné útoky využívají slovníky, masky a GPU. Krátká a strukturovaná hesla jsou často mnohem slabší, než by jejich zdánlivá entropie naznačovala.

Doporučené postupy
  • Doporučujeme používat delší náhodné hesla (4 a více slov) nebo hesla generovaná správcem hesel.
  • Vyhněte se osobním údajům, datům a předvídatelným strukturám.
  • Používejte správce hesel a pokud je to možné, zapněte vícefaktorové ověřování (MFA).
  • Nepoužívejte hesla opakovaně; měňte je pouze v případě úniku.

Jak testovat sílu hesla prostřednictvím programovacích jazyků

Níže je uveden minimální příklad využití zralých komunitních knihoven, můžete si vybrat podle svého technologického zásobníku.

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}"),
    }
}
                        

Poznámka: Tyto knihovny poskytují odhad síly a vzorů, které se mohou mírně lišit od detekovaných položek na této stránce.