Poop poop
Poop poop

Reputation: 63

Why can't i decrypt the database values with fernet [Python]?

im trying to retrieve encrypted values in the database, and decrypt them. But it's not working for me. This are the records from sqlite3 which im trying to decrypt:

[(b'gAAAAABg5EBDnm6LZdHNzzjnDlFcA80SeS1s-wXhKx_opwOm0vSNsfcxheZC4abQ-qvifmxxbCT8gGy2O1dz-76gx3_ALVmeZQ==', b'gAAAAABg5EBD1k2kpmYaAI0PNfjHondg5mB9RwxoIxVqAkfZcAeYrK-H4oqyYjV9WcHFN0CF7Xf0dN2rAXKrkAq-myyfNUplSg==', b'gAAAAABg5EBDJrUQazdiAdf4yejxIwzZHSln-hAcYLkh27-7HO5gE8XjHZjUz3Y2-lHoDIINSAzUt10J93eZ2EeCNUGA1mVrgw==', b'gAAAAABg5EBDp5znqWT87IMASAjDuhMtB7uMV2rezOEQzy_O4ka8R8Dn0fCkZhajVBIQ3S0-MQiM2Mq0qS8JbKCD_rZhbaFPcA==', b'gAAAAABg5EBDZ3YdqhKFRZWQeKP3VUvaVWp-pmSub2aZtQGIpirZ6Pi9zplxdqCindAOHJIQrlcjAr_FG_vnH8U89_bx7FjX2Q==', b'gAAAAABg5EBDjIcwfpyMYXxoEK9XZjJEDyFM3sWfpM61hgAIOf4cNTj1etS1nCMsLIZtKIrF5wSRkmzP_tiXyDolisVkjr6uuA=='), ('gAAAAABg5EDjNQV_tNHuRRkZvdLDfnI20iGZ0Cpzv--1Xct0brLjCOlqnt0ZOU0AYe-tbQ390yIF2B-xlDGuP1-isAtgkWtGTQ==', 'gAAAAABg5EDjC84Zs7HPm1zPe9O2sWNX_HSf3pZeyivmqaPC-VYu5qely818-srsNOtVYtNoGCineThtqQuEC7vjteYV3sHIjA==', 'gAAAAABg5EDj-rUfVVvzObgt4HcgUr7UczgKTrdQyim-ZIY9AeFFGpreZeUS0G9ojkqX_o1AeDyUkcZ4mKIVwoK1dSOINPcp1Q==', 'gAAAAABg5EDjRwttFLM-AhzcFPsKX_cZv9BXnZd__wUH2fRudsFCTwwGnQxhWgxNjNN42zUs_ig6iVmLOJVZRJWno5LzRNQuVQ==', 'gAAAAABg5EDjyAbkEspirSsfj9tzwk5nwoR1rTP9QLjFSOO43Ju3eA1sBEiyTzn_yqpN8O67efYH1F7cEIrK9ne8D9zIRlg_RA==', 'gAAAAABg5EDj0Cgif60GqnxTu-_sd5gnFZvgvNyUZLoyh_QDRtq0ZHihaWiWv9ck9WlI1dKPKeg4nddFHep4lhb0YslRg7ZMhA=='), ('gAAAAABg5EOIDTUoHx9go4zl2J_WEcIcTKlCICNDGm241Izle6lH4BekWq6xH8i5IkhaSZPz82ADlQSyVAhhmCtu8FPN4sixOg==', 'gAAAAABg5EOIwgZcgSDSI0M4y9-faMjWBXtyx-GsJHmVV6P8QEru6wWMqPu0KFRFJB8CscVA8PtazieIcjcFqnpP_GTsG7Zebw==', 'gAAAAABg5EOIUa-sJK-76B45cAMZ-Vpog6KouDdo7p56Tmyq4GwF4Cw5ANALF-xckR52gpN1B6_YCY6V5x642lyKMLbzZh3O6A==', 'gAAAAABg5EOIm6UpODzgfb9sxJujrNtaPRDJS_GjXnS9jNHAb4wN3aQljZAKARboQiRvG1WYkVLCetaNN8jOSgF15tWgYmugNQ==', 'gAAAAABg5EOIOQ9mB2ONC-0HCXER4xsCyBxRRcDVRoe6WICyQJvS1ZpdgI2UjASL4yYvRjoLxyRm03Ka0o4iuPoTYIOk7JOnIA==', 'gAAAAABg5EOIt6wbW5vS2PrZjeu7RhBioL-U_c63nXZLJRH1gajaaV6kzbsIHLSFYcawXiwZ75sUnQTFj5JPtMlTFj8TRo80nw=='), ('gAAAAABg5EQXGsA0VtAientcwIOpL6igK7fan8lYGKlAbyEpEg4sH4JoHmOmYN4vTfZxXiS_E1Jn_me-L_xpbqgtC9z2ihPnWQ==', 'gAAAAABg5EQXDij9NMYOva_CTBXsPZMT8rGiEPZnHOuFbjIHHX2Wi46DOFMtEHy6O1MP7HimMJsPRkXgIrb7MGr610clFlhjRg==', 'gAAAAABg5EQXupxCcXLmtqjskNWx9TQVaF-ZHovEhv1g6qNA8zDkjY_4rA2Utk8sFkaaJH86pBuyIFmtGZ1i47zr0FufPneJcQ==', 'gAAAAABg5EQX6qWDg3eBdr4Q2YT6n5Zgy6UwLQFrB-5C-lXjoIu8NjK14zh87B8K_IAhjGN9VRJLskQMN8BtoCo4ZopoS1AqhQ==', 'gAAAAABg5EQXBUIZLqjgVMHauf279CbtMzam4yIaZHSO6-cOC8-0t_VTjgG7mpjcujMgTLeOFwBF_mwIHRpG8HubGMUnjbnQ4A==', 'gAAAAABg5EQXNCIO8OmZA5vsULGgagHsTE-KM5LeEOMjVJ4SzkAtev1DsbYQmST98FmHOUwolR2WbDw2pK11J9C292Jvil_nnQ=='), ('gAAAAABg5EQjygSazmI5VnieVQG1cAsvgsm_u7tHE9X9CevMXqIEcWbe1SOK5wRDza9LXXn_NbCaffJXrq4Dz9BcZh96mh9aqQ==', 'gAAAAABg5EQjEhshfY6M7Yqp4Nm4EE1-Cz7B6P8m7F7jA99qk3D3U3W4ejWz576t5Qg1uBYWclY6NI_SouQ2cGH7PXEdjv_4Gw==', 'gAAAAABg5EQjKzUAlURxaoeAiDAAiVNIvgKE3r8U0fwFQWKtUWSTTAe0RugxV8_QYDqOndxVBxhrRsWDTP1p2Kzbn_do9T7Zfg==', 'gAAAAABg5EQj8UYXm2nqqsrN2Xh5y7L0h1uezTzL-WFZxekurC_Z4VcZfuOVKE5nFlFWfHu6x0OUer1j9N1bIZPVvMY_6_NsSg==', 'gAAAAABg5EQj1_sXfsbRtX24ZnY2rjoorebkZp1010W4wtssa2T6ZJxrzQjHr1ELYbB77Mtm_w_euihEoXigkhZhQXkkTysC6Q==', 'gAAAAABg5EQjeHuoLttV3wRj9DgIVseVvdMmYmWX3-D-UIckrjrizKM6N6OSpq98rPkk9DCutqgW9Jup2KD4bshhCtr8ipO1-g=='), ('gAAAAABg5EVhxeWhA7-oBZPT93nSe3p6vvxqcysxOjdyGyVNQdBwdtM2heHrhNnNSes8yang0Cx9vgBIsU7Yjrfdgz8tOWpK_A==', 'gAAAAABg5EVhdtXop2FNWsZSndOxQ3iEuJQyfI1flL0swLpcJKKTjBlEZhWpwoB3XTO2STYRVrimyEljZs751aVgveF0-rpEpA==', 'gAAAAABg5EVhyWQRkpFOd6Y-_OYqDJX5FVfpYXmd_2SKMZd-EPFYqOu5s47C7lw23zs4eHFVeEF0tSnSpr58rW6hWnxlOnjhnQ==', 'gAAAAABg5EVhCmgEjitk1cutyI5Nn5qYFsh0LRd3-uBJekPrZFoJb6S7hODtwNP-cQoV8R6u5eRLdUOeqffwCKIbBPYA9_lyTQ==', 'gAAAAABg5EVhKZggbtmupc2FqzfbSREmsws-MFYTEX-kGwfw-JJmBOh_7RJnTa-23HWJQtfChSWWuXzsxULJ5vI289c0BVIqrw==', 'gAAAAABg5EVhy8aowZUiuX6M2IPW35XFZNBueXDd_JFal39ViFmg6avpbkvs0mhVzpqVvXjNcMmr3QbNeXf3daLCDa7_KdCmmg=='), ('gAAAAABg5VXtU9o11NkBR4Dno1cCGXc2WRuF3T9pUOKN17qfeJBI-ELjm7WLQj4u040C0cvLzV3CppnMmrJar2uLrJXIXp9v4g==', 'gAAAAABg5VXt51ctmoNo26K4dj1_AsyIYfS2mnAWGIxsYRrEj_69U2J9q5AkyxhJABc8bgwOr6fTZdpkD3AiUHgHD1gnRiPRIg==', 'gAAAAABg5VXt9ro0utsS9cwvrpTFlbGMw9Xs9VJByAUniy_1iyCaeeTg5XWEtZQYo8VIQntl297qa90gmkRt8esm6m_aj5fQDA==', 'gAAAAABg5VXtjAkmDexMLvx8Esx9fU0hVvWInpLq9Vi942qJSSSkxavoFtt-1mO7Vx_VqRn4pzLlMKaf2xf0YJ2pWDB-QSn2AQ==', 'gAAAAABg5VXtF_Vx03hPnIXh38EdTJ5fNo0hBIx1xi7ZTDLTjYA4A9oy7Fha46oo0M4ix8uQ3S0jaCN9WsQtF4sMJ0fKwdO7Iw==', 'gAAAAABg5VXt1eWvT2wzahdBHl1z4oddZOiIiLGpFtbMpFClcLrt5ADt_Qj4eSJNPuf5HIvcLXSI-SZnLrwsO0xA3pp6PvLSJQ==')]

And this is the code:

key = Fernet.generate_key()

fernet = Fernet(key)
conn = sqlite3.connect('database.db')
c = conn.cursor()
def get_clients():
    arr = []
    retrieved_vals = ""
    c.execute("SELECT * FROM client")
    print(c.fetchall())
    arr = c.fetchall()
    element2 = ""
  
    for element in arr[0]:
        print(fernet.decrypt(element).decode())
        

But im getting these list of errors:

Traceback (most recent call last):
  File "C:\Users\d\AppData\Local\Programs\Python\Python38\lib\site-packages\cryptography\fernet.py", line 119, in _verify_signature
    h.verify(data[-32:])
  File "C:\Users\d\AppData\Local\Programs\Python\Python38\lib\site-packages\cryptography\hazmat\primitives\hmac.py", line 74, in verify
    ctx.verify(signature)
  File "C:\Users\d\AppData\Local\Programs\Python\Python38\lib\site-packages\cryptography\hazmat\backends\openssl\hmac.py", line 75, in verify
    raise InvalidSignature("Signature did not match digest.")
cryptography.exceptions.InvalidSignature: Signature did not match digest.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\d\OneDrive\Bureaublad\Assignment8\CDMS.py", line 55, in <module>
    get_clients()
  File "C:\Users\d\OneDrive\Bureaublad\Assignment8\CDMS.py", line 42, in get_clients
    print(fernet.decrypt(element).decode())
  File "C:\Users\d\AppData\Local\Programs\Python\Python38\lib\site-packages\cryptography\fernet.py", line 80, in decrypt
    return self._decrypt_data(data, timestamp, time_info)
  File "C:\Users\d\AppData\Local\Programs\Python\Python38\lib\site-packages\cryptography\fernet.py", line 137, in _decrypt_data
    self._verify_signature(data)
  File "C:\Users\d\AppData\Local\Programs\Python\Python38\lib\site-packages\cryptography\fernet.py", line 121, in _verify_signature
    raise InvalidToken
cryptography.fernet.InvalidToken

I dont know what im doing wrong

Upvotes: 1

Views: 682

Answers (2)

codefire
codefire

Reputation: 391

Since it is symmetric encryption based on secret key, you must use the same key that was used to encrypt those data. Otherwise you will not be able to decrypt it.

Upvotes: 0

kjaw
kjaw

Reputation: 615

You cannot generate a new key during decryption.

key = Fernet.generate_key()

You must use the same key as for encryption.

Upvotes: 1

Related Questions