.gitignore | ||
decrypt_api.py | ||
decrypt_from_appdata.py | ||
decrypt_from_keys.py | ||
readme.md |
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.