Go to file
2025-03-19 17:38:25 -04:00
.gitignore Add code to get the Signal SQL decryption key 2025-03-19 17:38:25 -04:00
decrypt_api.py Add code to get the Signal SQL decryption key 2025-03-19 17:38:25 -04:00
decrypt_from_appdata.py Add code to get the Signal SQL decryption key 2025-03-19 17:38:25 -04:00
decrypt_from_keys.py Add code to get the Signal SQL decryption key 2025-03-19 17:38:25 -04:00
readme.md Add code to get the Signal SQL decryption key 2025-03-19 17:38:25 -04:00

Outputs the key used to decrypt the Signal Desktop sqlite DB, as of Signal v7.46.1 (2025-03-19). This only works on Windows but I'm sure it's not hard to adapt it for other platforms.

You will need some Python libs, like win32crypt and maybe one other, I forget. Can install with pip.

The encryption key can change, so the easiest way to use this is to run decrypt_from_appdata.py.

If you're making a backup of the encrypted DB, then close Signal, grab a copy the SQL file (or maybe it's better to copy the entire Signal folder in appdata/roaming?), and create two keyfiles containing the encrypted OS master key string from the Signal local_state file and the encrypted config.json key string. You can then use the decrypt_from_keys.py version in the future with those two key files, but you'll need to do it on the same Windows user account that encrypted the DB. If you're concerned that you won't have access then just get the decryption key from the script and save it somewhere for future use. If any of this confuses you then look at the appdata python code to see where the key values are stored.


For Michael's PC: Need to run this from Windows CMD because I can't get the win32crypt lib to install in msys.