Common-PW เป็นแพ็คจ์ GO ที่ใช้จุดสิ้นสุด JSON API เพื่อตรวจสอบว่ารหัสผ่านอยู่ใน Top X ที่ใช้กันมากที่สุดหรือไม่ ข้อมูลถูกใช้จากรายการคำที่น่าจะเป็น
โคลน repo git clone https://github.com/mtchavez/common-pw
ดาวน์โหลดข้อมูลจากที่เก็บรายการ Word List ที่เป็นไปได้และวางในไดเรกทอรีข้อมูล ปัจจุบัน Top32Million-probable.txt
ไม่ได้อยู่ในการควบคุมเวอร์ชันเนื่องจากขนาด
เรียกใช้เซิร์ฟเวอร์บนพอร์ต 3000 ด้วย go run main.go
ตัวกรองรหัสผ่านจะสร้างในพื้นหลังและอาจใช้เวลา ~ 20 วินาทีในการสร้าง เวลาที่ใช้ในการสร้างจะออกจากระบบ
ใช้ม้วนงอหรือสิ่งที่คล้ายกับโพสต์ /validate
ด้วยร่างกาย JSON:
{
"password" : " the password to check "
}
ตัวอย่าง:
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{"password": "iloveyou"}' | jq
{
"status": "OK",
"top196": "true",
"top3575": "true",
"top95k": "true"
}
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{"password": "annabelle"}' | jq
{
"status": "OK",
"top196": "false",
"top3575": "true",
"top95k": "true"
}
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{"password": "!@#$%^&*("}' | jq
{
"status": "OK",
"top196": "false",
"top3575": "false",
"top95k": "true"
}
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{"password": "Portlandia"}' | jq
{
"status": "OK",
"top196": "false",
"top3575": "false",
"top95k": "false"
}
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{"password": "Portlandia"}' | jq
{
"status": "OK",
"top196": "false",
"top32m": "true",
"top3575": "false",
"top95k": "false"
}
จำเป็นต้องใช้รหัสผ่าน
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{}' | jq
{
"error": "a password must be provided",
"status": "failed"
}