Bash version
This commit is contained in:
parent
453d778452
commit
8684ecf17d
41
pwned.sh
Executable file
41
pwned.sh
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# FAIR License, Copyright (c) 2019 72Zn
|
||||||
|
# Usage of the works is permitted provided that this instrument is retained
|
||||||
|
# with the works, so that any entity that uses the works is notified of this
|
||||||
|
# instrument.
|
||||||
|
# DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
|
||||||
|
|
||||||
|
# usage examples:
|
||||||
|
# ./pwned.sh [pw1] [pw2] ...
|
||||||
|
# ./pwned.sh < <file_with_passwords>
|
||||||
|
# echo pw | ./pwned.sh
|
||||||
|
|
||||||
|
PWNAPI="https://api.pwnedpasswords.com/range"
|
||||||
|
|
||||||
|
lookup_pwned_api() {
|
||||||
|
local pass="$1"
|
||||||
|
local pwhash=$(printf "%s" "$pass" | sha1sum | cut -d" " -f1)
|
||||||
|
local curlrv="$(curl -s "$PWNAPI"/"${pwhash:0:5}")"
|
||||||
|
[ -z "$curlrv" ] && echo "$pass could not be checked" && return
|
||||||
|
local result="$(echo "$curlrv" | grep -i "${pwhash:5:35}")"
|
||||||
|
|
||||||
|
if [ -n "$result" ]; then
|
||||||
|
local occ="$(printf "%s" "${result}" | cut -d: -f2 | sed 's/[^0-9]*//g')"
|
||||||
|
printf "%s was found with %s occurances (hash: %s)\n" "$pass" "$occ" "$pwhash"
|
||||||
|
else
|
||||||
|
printf "%s was not found\n" "$pass"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$#" -lt 1 ]; then
|
||||||
|
# read from file or stdin
|
||||||
|
while read -r pw; do
|
||||||
|
lookup_pwned_api $pw
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# read arguments
|
||||||
|
for pw in "$@"; do
|
||||||
|
lookup_pwned_api $pw
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in New Issue
Block a user