# How to browse sqlcipher database (ARCHIVED) It's possible to open the sqlcipher database that status-go uses, this can be useful for development and debugging purposes. Software: https://sqlitebrowser.org/dl/ --- --- ## IMPORTANT This is no longer up to date. The newest version is here https://www.notion.so/How-to-browse-sqlcipher-database-3300824d1d3242ec837bf8f99adeea33 --- --- ## Open database Application database is located in `<status-appdata>/data/<pubkey>.db`. ![](https://i.imgur.com/4a5AUL6.png) | Parameter | Value | |-----------|-------| | Page Size | 1024 | | KDF iterations | 256000* | | HMAC | SHA1 | | KDF | SHA1 | | Password | Passphrase, ``"0x" + keccak256(clearPassword)`` | > *It was 3200 before and for old accounts 3200 probably is the only option ### Using the command line You can also use the command line `sqlcipher` tool. Start by doing: `sqlcipher /PATH/TO/PUBKEY.db` Then enter those `PRAGMAS` to set it up correctly ``` PRAGMA key = "ENCODED_PASSWORD (see below)"; PRAGMA cipher_page_size = 1024; PRAGMA kdf_iter = 256000; PRAGMA cipher_hmac_algorithm = HMAC_SHA1; PRAGMA cipher_kdf_algorithm = PBKDF2_HMAC_SHA1; ``` ## Getting passphrase ### Manually 1. Create a keccak-256 hash for your password You can use https://emn178.github.io/online-tools/keccak_256.html 1. Convert the keccak-256 hash of your password to LOWER CASE For example here: https://convertcase.net/ 1. Add `0x` to your password So it looks like 0x`keccak-256 hash of your password` ### Using Python Here's a quick Pyhon script you can use. ```python import sha3 import pyperclip print("Type your password...") password = input() hasher = sha3.keccak_256() hasher.update(password.encode()) #hash = '0x' + hasher.hexdigest().upper() // uppercase was for old accounts hash = '0x' + hasher.hexdigest() pyperclip.copy(hash) print(f'Hash: {hash} is copied to clipboard') ```