Support spaces (leading, trailing or embedded) in bash versions (#32)

Also minor unrelated quoting cleanup.

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
This commit is contained in:
Andre McCurdy 2019-10-07 03:05:06 -07:00 committed by Michael Pound
parent 19305f3516
commit 33899e9a50
2 changed files with 14 additions and 14 deletions

View File

@ -15,12 +15,12 @@ PWNAPI="https://api.pwnedpasswords.com/range"
lookup_pwned_api() { lookup_pwned_api() {
local pass="$1" local pass="$1"
local pwhash=$(printf "%s" "$pass" | shasum -a 1 | cut -d" " -f1) local pwhash=$(printf "%s" "$pass" | shasum -a 1 | cut -d" " -f1)
local curlrv="$(curl -s "$PWNAPI"/"${pwhash:0:5}")" local curlrv=$(curl -s "$PWNAPI/${pwhash:0:5}")
[ -z "$curlrv" ] && echo "$pass could not be checked" && return [ -z "$curlrv" ] && echo "$pass could not be checked" && return
local result="$(echo "$curlrv" | grep -i "${pwhash:5:35}")" local result=$(echo "$curlrv" | grep -i "${pwhash:5:35}")
if [ -n "$result" ]; then if [ -n "$result" ]; then
local occ="$(printf "%s" "${result}" | cut -d: -f2 | sed 's/[^0-9]*//g')" 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" printf "%s was found with %s occurances (hash: %s)\n" "$pass" "$occ" "$pwhash"
else else
printf "%s was not found\n" "$pass" printf "%s was not found\n" "$pass"
@ -28,14 +28,14 @@ lookup_pwned_api() {
} }
if [ "$#" -lt 1 ]; then if [ "$#" -lt 1 ]; then
# read from file or stdin # read from file or stdin (one password per line)
while read -r pw; do while IFS=$'\r\n' read -r pw; do
lookup_pwned_api $pw lookup_pwned_api "$pw"
done done
else else
# read arguments # read arguments
for pw in "$@"; do for pw in "$@"; do
lookup_pwned_api $pw lookup_pwned_api "$pw"
done done
fi fi

View File

@ -15,12 +15,12 @@ PWNAPI="https://api.pwnedpasswords.com/range"
lookup_pwned_api() { lookup_pwned_api() {
local pass="$1" local pass="$1"
local pwhash=$(printf "%s" "$pass" | sha1sum | cut -d" " -f1) local pwhash=$(printf "%s" "$pass" | sha1sum | cut -d" " -f1)
local curlrv="$(curl -s "$PWNAPI"/"${pwhash:0:5}")" local curlrv=$(curl -s "$PWNAPI/${pwhash:0:5}")
[ -z "$curlrv" ] && echo "$pass could not be checked" && return [ -z "$curlrv" ] && echo "$pass could not be checked" && return
local result="$(echo "$curlrv" | grep -i "${pwhash:5:35}")" local result=$(echo "$curlrv" | grep -i "${pwhash:5:35}")
if [ -n "$result" ]; then if [ -n "$result" ]; then
local occ="$(printf "%s" "${result}" | cut -d: -f2 | sed 's/[^0-9]*//g')" 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" printf "%s was found with %s occurances (hash: %s)\n" "$pass" "$occ" "$pwhash"
else else
printf "%s was not found\n" "$pass" printf "%s was not found\n" "$pass"
@ -28,14 +28,14 @@ lookup_pwned_api() {
} }
if [ "$#" -lt 1 ]; then if [ "$#" -lt 1 ]; then
# read from file or stdin # read from file or stdin (one password per line)
while read -r pw; do while IFS=$'\r\n' read -r pw; do
lookup_pwned_api $pw lookup_pwned_api "$pw"
done done
else else
# read arguments # read arguments
for pw in "$@"; do for pw in "$@"; do
lookup_pwned_api $pw lookup_pwned_api "$pw"
done done
fi fi