我正在尝试使用 sqlcipher 创建数据库,然后使用密码密钥的十六进制值访问它。根据 github (https://github.com/sjlombardo/sqlcipher) 的描述,密钥由 sha256 算法散列,然后用于加密 DB。可以选择通过 PRAGMA 指令以普通和十六进制形式提供密钥。如果我使用普通版本,它一切正常,但我无法使用十六进制键值访问数据库。例如,在我的情况下,键是“演示”,当我使用PRAGMA key='demo'
所有作品时。我得到了 sha256:
回声-n 演示 | shasum -a256 2a97516c354b68848cdbd8f54a226a0a55b21ed138e207ad6c5cbb9c00aa5aea
然后根据 sqlite3_exec 调用中的说明将其提供给 PRAGMA 指令:
sqlite3_exec(db, "PRAGMA key = x'2a97516c354b68848cdbd8f54a226a0a55b21ed138e207ad6c5cbb9c00aa5aea'", NULL, NULL, NULL);
但这不起作用。
我应该向 PRAGMA 指令提供密钥的十六进制值是多少?