import hashlib import re def get_gravatar_url(email): # Trim leading and trailing whitespace from # an email address and force all characters # to lower case address = str(email).strip().lower() # Create a SHA256 hash of the final string hash_object = hashlib.sha256(address.encode()) hash_hex = hash_object.hexdigest() # Grab the actual image URL return f"https://www.gravatar.com/avatar/{hash_hex}?d=mp" def calculate_sha256(file): sha256 = hashlib.sha256() # Read the file in chunks to efficiently handle large files for chunk in iter(lambda: file.read(8192), b""): sha256.update(chunk) return sha256.hexdigest() def calculate_sha256_string(string): # Create a new SHA-256 hash object sha256_hash = hashlib.sha256() # Update the hash object with the bytes of the input string sha256_hash.update(string.encode("utf-8")) # Get the hexadecimal representation of the hash hashed_string = sha256_hash.hexdigest() return hashed_string def validate_email_format(email: str) -> bool: if not re.match(r"[^@]+@[^@]+\.[^@]+", email): return False return True