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