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
- Délka
- Malá písmena
- Velká písmena
- Číslice
- Symboly
- Sekvence
- Opakování
- Černá listina
- Klávesnicový vzor
- Datum
- Perioda
- Vypadá to dobře! Momentálně nejsou k dispozici žádné nápady na vylepšení.
Postup použití
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
Časté dotazy
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é.
- 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).
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č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.
<!-- 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}"),
}
}
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.