Code added
This commit is contained in:
parent
1025d72d83
commit
80f2da2f03
@ -1,2 +1,8 @@
|
|||||||
# pwned-search
|
# pwned-search
|
||||||
Pwned Password API lookup
|
Pwned Password API lookup
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
python pwned.py [password]
|
||||||
|
|
||||||
|
Have fun! Oh, and if you find one of your own passwords, change it asap!
|
||||||
|
35
pwned.py
Normal file
35
pwned.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import requests
|
||||||
|
import cryptography
|
||||||
|
from base64 import b16encode
|
||||||
|
import sys
|
||||||
|
from cryptography.hazmat.backends import default_backend
|
||||||
|
from cryptography.hazmat.primitives import hashes
|
||||||
|
|
||||||
|
def hash_password_sha1_hex(pwd):
|
||||||
|
digest = hashes.Hash(hashes.SHA1(), backend=default_backend())
|
||||||
|
digest.update(pwd.encode('ASCII'))
|
||||||
|
sha1 = b16encode(digest.finalize()).decode('ASCII')
|
||||||
|
return sha1
|
||||||
|
|
||||||
|
def lookup_pwned_api(pwd):
|
||||||
|
sha1pwd = hash_password_sha1_hex(pwd)
|
||||||
|
head = sha1pwd[:5]
|
||||||
|
tail = sha1pwd[5:]
|
||||||
|
|
||||||
|
r = requests.get('https://api.pwnedpasswords.com/range/{0}'.format(head))
|
||||||
|
if r.status_code == 200:
|
||||||
|
hashes = (s.split(':') for s in r.text.split('\r\n'))
|
||||||
|
pred = ((head + t,count) for t,count in hashes if t == tail)
|
||||||
|
|
||||||
|
password_hit = next(pred, None)
|
||||||
|
return password_hit
|
||||||
|
|
||||||
|
|
||||||
|
api_return = lookup_pwned_api(sys.argv[1])
|
||||||
|
if (api_return):
|
||||||
|
print (sys.argv[1], "was found")
|
||||||
|
print ("Hash {0}, {1} occurences".format(api_return[0], api_return[1]))
|
||||||
|
else:
|
||||||
|
print (sys.argv[1], "was not found")
|
||||||
|
|
||||||
|
exit()
|
Loading…
Reference in New Issue
Block a user