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