Common-PWは、JSON APIエンドポイントを実装するGo Packgeで、パスワードが最も一般的に使用されているトップxにあるかどうかを確認します。データは、可能性のある単語リストから使用されます
クローンレポgit clone https://github.com/mtchavez/common-pw
可能性のある単語リストリポジトリからデータをダウンロードし、データディレクトリに配置します。現在、 Top32Million-probable.txt
サイズのためにバージョン制御にありません。
go run main.go
を使用して、ポート3000でサーバーを実行します。パスワードフィルターがバックグラウンドで構築され、ビルドに約20秒かかる場合があります。構築にかかった時間はログアウトされます。
JSONボディを使用して /検証するポスト/validate
に類似したものを使用します。
{
"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"
}