O Common-PW é um Packge implementando um terminal de API JSON para verificar se uma senha está no topo X mais comumente usado. Os dados são usados na lista provável de palavras
Clone Repo git clone https://github.com/mtchavez/common-pw
Faça o download dos dados do provável repositório da lista de palavras e coloque no diretório de dados. Atualmente, Top32Million-probable.txt
não está no controle da versão devido ao tamanho.
Execute o servidor na porta 3000 com go run main.go
Os filtros de senha serão construídos em segundo plano e podem levar ~ 20 segundos para serem construídos. O tempo que levou para construir será registrado.
Use Curl ou algo semelhante para postar /validate
com um corpo JSON:
{
"password" : " the password to check "
}
Exemplos:
$ 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"
}
Uma senha é necessária
$ curl -s -XPOST -H "Content-Type: application/json" http://localhost:3000/validate --data '{}' | jq
{
"error": "a password must be provided",
"status": "failed"
}