如何在sqlite3_key中传递pKey?

时间:2019-02-07 12:27:45

标签: c linux sqlcipher

我已经使用“ ATTACH DATABASE”和十六进制密钥对数据库进行了加密。但是在使用相同的十六进制密钥解密时,出现错误“文件已加密或不是数据库”。将pKey传递给sqlite3_key()时发生任何错误。我正在使用sqlcipher-2.2.0版本。请参见下面的代码:

sqlite3_exec(persistence_db, "ATTACH DATABASE \'./encrypted.db\' AS db2 KEY \"x\'02\'\";", NULL, NULL, &zErrMsg);
sqlite3_exec(persistence_db, "SELECT sqlcipher_export('db2');", NULL, NULL, &zErrMsg);    
sqlite3_exec(persistence_db,"DETACH DATABASE db2;",NULL, NULL, NULL)
//above 3 APIs returns SQLITE_OK

//但是在解密相同的crypto.db时出现错误

sqlite3_key(persistence_db, "x'02'", 2);
sqlite3_exec(persistence_db, "SELECT count(*) FROM sqlite_master;", NULL, NULL, &zErrMsg);

//这返回错误:文件已加密或不是数据库

0 个答案:

没有答案