เครื่องตรวจสอบความแข็งแกร่งของรหัสผ่าน

ตรวจสอบความแข็งแกร่งของรหัสผ่าน ค่าความสุ่มและจุดอ่อนทั่วไป ทุกการตรวจสอบจะทำงานในเบราว์เซอร์ของคุณเอง

การตรวจสอบความแข็งแกร่ง

ค่าความสุ่ม
ความแข็งแกร่ง:
การประมาณเวลาการแตกรหัสแบบออฟไลน์ (GPU สูงความเร็ว)
การประมาณเวลาการแตกรหัสแบบออนไลน์ (มีอัตราเร็วสูงสุด)
ผลการตรวจสอบ
  • ความยาว
  • ตัวอักษรพิมพ์เล็ก
  • ตัวอักษรพิมพ์ใหญ่
  • ตัวเลข
  • สัญลักษณ์
  • ลำดับ
  • การซ้ำ
  • รายการบล็อก
  • โหมดแป้นพิมพ์
  • วันที่
  • การซ้ำเป็นระยะ
การกำหนดนโยบาย
คั่นด้วยเครื่องหมายจุลภาค ไม่สนใจตัวพิมพ์เล็กหรือใหญ่ รองรับ Leet normalization (เช่น Pa$$w0rd → password)
คำแนะนำเพื่อปรับปรุง
คำอธิบายเกี่ยวกับความเป็นส่วนตัว:การตรวจสอบทำทั้งหมดในเบราว์เซอร์ของคุณท้องถิ่น รหัสผ่านจะไม่ถูกส่งขึ้นไป。

วิธีใช้งาน

วิเคราะห์รหัสผ่านในเครื่องและรับคำแนะนำเพื่อปรับปรุงที่สามารถดำเนินการได้
1) ป้อนหรือวางรหัสผ่าน ผลลัพธ์จะปรับปรุงแบบเรียลไทม์
2) ปรับนโยบายตามต้องการ (ความยาวขั้นต่ำ/ข้อกำหนดประเภทอักขระ)
3) เพิ่มคำอ่อนทั่วไปลงในรายการบล็อกเพื่อช่วยในการระบุ (รองรับการทำให้เป็นมาตรฐานแบบ Leet)
4) ใช้การนำเข้า/ส่งออกเพื่อแชร์การตั้งค่านโยบาย

คุณสมบัติเด่น

  • การวิเคราะห์แบบโลคอล 100% เพื่อการปกป้องความเป็นส่วนตัวเป็นลำดับแรก
  • การตรวจจับขั้นสูง: การเคลื่อนที่บนแป้นพิมพ์, วันที่, การทำซ้ำตามระยะเวลา, ลำดับ, การทำซ้ำ เป็นต้น
  • การจับคู่รายชื่อป้องกันแบบ Leet normalization (เช่น Pa$$w0rd → password)
  • นโยบายที่ยืดหยุ่น: ความยาวขั้นต่ำและความต้องการประเภทตัวอักษร
  • นำเข้า/ส่งออกนโยบาย JSON ด้วยคลิกเดียว
  • วิเคราะห์ในเครื่องตรวจจับด้วยคลิกเดียว

การเปรียบเทียบรหัสผ่าน

ผลการเปรียบเทียบ
ค่าเอนโทรปี(A): ค่าเอนโทรปี(B):

คำถามที่พบบ่อย

รหัสผ่านของฉันจะถูกอัปโหลดหรือไม่?
ไม่ ทุกการวิเคราะห์จะทำในเบราว์เซอร์ของคุณเท่านั้น
“ค่าเอนโทรปี” หมายถึงอะไร?
โดยทั่วไปหมายถึงจำนวนครั้งการลองที่จำเป็นเพื่อเดาได้ ความแข็งแกร่งจริงจะลดลงเมื่อมีโครงสร้าง
ทำไมคะแนนถึงลดลง?
รูปแบบเช่น ลำดับ, วันที่ หรือการเคลื่อนที่บนแป้นพิมพ์ จะลดความแข็งแกร่ง

รายงาน

รายงานไม่รวมถึงข้อความรหัสผ่านของคุณ แต่รวมเฉพาะตัวชี้วัดและการตั้งค่าเท่านั้น

ความรู้ที่เกี่ยวข้อง
ค่าความไม่แน่นอน (Entropy)

ค่าความไม่แน่นอนใช้ในการประมาณขนาดของพื้นที่การค้นหาที่ขึ้นอยู่กับชุดตัวอักษรและความยาว ถ้ามีโครงสร้าง (รูปแบบ, คำ) ค่าความไม่แน่นอนที่มีประสิทธิภาพจะลดลงแม้ว่าบิตดั้งเดิมดูจะสูง

คำอธิบายรายการตรวจสอบ
  • ลำดับตัวอักษรหรือตัวเลข เช่น abcde หรือ 12345。
  • การใช้ตัวอักษรเดียวกันซ้ำเป็นระยะยาว (เช่น aaaa)。
  • ตรงกับคำอ่อนหรือรูปแบบที่พบบ่อยในรายการแดงการกำหนดเอง。
  • การเคลื่อนที่บนแป้นพิมพ์หรือลำดับตัวอักษรที่อยู่ติดกันบนแป้นพิมพ์ (เช่น qwerty, asdf)。
  • รูปแบบวันเดือนปี (เช่น YYYYMMDD, dd-mm-yyyy)。
  • สตริงย่อยซ้ำ (เช่น abcabc, 121212)。
  • ทำการทำให้สตริงเป็นรูปแบบเดียวกันโดยใช้หลักการ Leet ก่อนการตรวจสอบกับรายการแดง (เช่น Pa$$w0rd → password)。
คำเตือนเกี่ยวกับเวลาคราฟรหัสผ่าน

เวลาคราฟรหัสผ่านเป็นเพียงการประมาณการคร่าวๆ การโจมตีจริงๆ จะใช้พจนานุกรม, แมสก์และ GPU รหัสผ่านที่สั้นและมีโครงสร้างชัดเจนมักจะอ่อนกว่าค่าความไม่แน่นอนที่ดูเห็นได้ชัดเจน

การปฏิบัติที่ดีที่สุด
  • ใช้คำสั้นที่สุ่มและยาว (มากกว่า 4 คำ) หรือรหัสผ่านที่สร้างโดยเครื่องจัดการรหัสผ่านเป็นอันดับแรก。
  • หลีกเลี่ยงข้อมูลส่วนบุคคล, วันเดือนปี และโครงสร้างที่ทำนายได้。
  • ใช้เครื่องจัดการรหัสผ่านและเปิดใช้งานการยืนยันหลายปัจจัย (MFA) หากเป็นไปได้。
  • อย่าใช้รหัสผ่านซ้ำ; เปลี่ยนรหัสผ่านเฉพาะเมื่อมีการรั่วไหลข้อมูล。

วิธีตรวจสอบความแข็งแกร่งของรหัสผ่านผ่านภาษาโปรแกรมมิ่ง

นี่คือตัวอย่างขั้นต่ำที่ใช้ไลบรารีจากชุมชน คุณสามารถเลือกตามสแต็กเทคโนโลยีของคุณ

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

คำอธิบาย: ไลบรารีเหล่านี้ให้การประมาณความแข็งแกร่งและรูปแบบ อาจมีความแตกต่างเล็กน้อยจากรายการตรวจจับในหน้านี้