@@ -44,6 +44,7 @@ def encrypt_email(self, email):
4444 def decrypt_email (self , encrypted_email ):
4545 """Decrypt an email address."""
4646 if not encrypted_email :
47+ print ("Warning: No encrypted email provided for decryption" )
4748 return None
4849
4950 try :
@@ -55,8 +56,13 @@ def decrypt_email(self, encrypted_email):
5556
5657 # Return as string
5758 return decrypted_bytes .decode ("utf-8" )
59+ except base64 .binascii .Error as e :
60+ print (f"Error: Invalid base64 encoding in encrypted email: { e } " )
61+ print (f"Encrypted email (first 50 chars): { encrypted_email [:50 ]} ..." )
62+ return None
5863 except Exception as e :
5964 print (f"Error decrypting email: { e } " )
65+ print (f"Encrypted email (first 50 chars): { encrypted_email [:50 ]} ..." )
6066 return None
6167
6268 def create_email_hash (self , email ):
@@ -66,7 +72,6 @@ def create_email_hash(self, email):
6672
6773 def create_hmac_email_hash (self , email ):
6874 """Create HMAC hash of the email (for newsletter uniqueness)."""
69- """Create a hash of the email for username field (SHA-256)."""
7075 normalized_email = email .lower ().strip ()
7176 return hashlib .sha256 (normalized_email .encode ("utf-8" )).hexdigest ()
7277
@@ -122,6 +127,17 @@ def update_user_email(self, user, new_email):
122127 user .save ()
123128 return user
124129
130+ def test_encryption (self ):
131+ """Test if encryption/decryption is working properly."""
132+ test_email = "test@example.com"
133+ try :
134+ encrypted = self .encrypt_email (test_email )
135+ decrypted = self .decrypt_email (encrypted )
136+ return decrypted == test_email
137+ except Exception as e :
138+ print (f"Encryption test failed: { e } " )
139+ return False
140+
125141
126142# Global instance
127143email_encryption = EmailEncryption ()
0 commit comments