①     更改数据库密码:首先你需要使用当前的密码正确的打开数据库,之后你可以调用sqlite3_rekey(db,"112233",6) 来更改数据库密码。
②     删除密码:也就是把数据库恢复到明文状态。这时你仍然只需要调用sqlite3_rekey函数,并且把该函数的第二个参数置为NULL或者"",或者把第三个参数设为0。
 
加密后数据库文件显示为乱码:

 
为此我建立了一个简单的示例:
    sqlite3 *db;
    sqlite3_stmt *stat;
    char *zErrMsg = 0;
    char temp[256], FileRoot[256];
    char buffer2[1024]="0";
 
    sprintf(temp, _T("%s"), _T("utf.db"));
    CCodingConv::GB2312_2_UTF8(FileRoot, 256, temp, 0);
    sqlite3_open(FileRoot, &db);
 
    if(db == NULL)
    {
        return -1;
    }
 
    sqlite3_key(db,"1q2w3e4r",8);
 
    sqlite3_exec(db, "CREATE TABLE list (fliename varchar(128) UNIQUE, fzip text);", 0, 0, &zErrMsg);
    sqlite3_prepare(db, "insert into list values ('中文GB2312编码',?);", -1, &stat, 0);
 
    strcpy(temp, "测试数据UTF-8的支持情况");
    int len = (int)strlen(temp);
 
    sqlite3_bind_text(stat, 1, temp, len, NULL);
    sqlite3_step(stat);
 
    sqlite3_prepare(db, "select * from list;", -1, &stat, 0);
    sqlite3_step(stat);
 
    const unsigned char * test = sqlite3_column_text(stat, 1);
    int size = sqlite3_column_bytes(stat, 1);
 
    printf("%s", test);
 
    sqlite3_finalize(stat);
    //sqlite3_rekey(db,"",0);
    sqlite3_close(db);
 
具体的源代码如下:
SQLite3.3.7 加密版源代码(VC2003)
SQLite3.3.7 加密版源代码(VC2005)
 
例子1,例子2