Common-PW adalah GO Packge yang mengimplementasikan titik akhir API JSON untuk memeriksa apakah kata sandi berada di atas X yang paling umum digunakan. Data digunakan dari daftar kata yang mungkin
Clone Repo git clone https://github.com/mtchavez/common-pw
Unduh data dari kemungkinan repositori daftar kata dan tempatkan di direktori data. Saat ini Top32Million-probable.txt
tidak berada dalam kontrol versi karena ukurannya.
Jalankan server di port 3000 dengan go run main.go
Filter kata sandi akan dibangun di latar belakang dan dapat memakan waktu ~ 20 detik untuk dibangun. Waktu yang dibutuhkan untuk dibangun akan dicatat.
Gunakan curl atau sesuatu yang mirip dengan post to /validate
dengan tubuh JSON:
{
"password" : " the password to check "
}
Contoh:
$ 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"
}
Kata sandi diperlukan
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{}' | jq
{
"error": "a password must be provided",
"status": "failed"
}