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