Ios 我集成SQL密码的方法正确吗?

Ios 我集成SQL密码的方法正确吗?,ios,objective-c,sqlite,sqlcipher,Ios,Objective C,Sqlite,Sqlcipher,之前我使用了Xcode附带的SQLite3库,创建数据库的代码如下所示: NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docsDir = dirPaths[0]; databasePath = [[NSString alloc] initWithString: [docsDir stringByAppe

之前我使用了Xcode附带的SQLite3库,创建数据库的代码如下所示:

NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docsDir = dirPaths[0];

    databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:@"databases/database.sqlite"]];
    NSLog(@"DB Path: %@", databasePath);

    NSFileManager *filemgr = [NSFileManager defaultManager];

    if ([filemgr fileExistsAtPath: databasePath ] == NO) {
        const char *dbpath = [databasePath UTF8String];
        if (sqlite3_open(dbpath, &myDatabase) == SQLITE_OK) {

            char *errMsg;

             const char *sql_data = "CREATE TABLE IF NOT EXISTS myTableName.....";

            if (sqlite3_exec(myDatabase, sql_data, NULL, NULL, &errMsg) == SQLITE_OK) {

                NSLog(@"Database OK");

                [self setDatabase];

            } else {
                NSLog(@"Data Base Fail");
            }

            sqlite3_close(myDatabase);

        } else {

            NSLog(@"Database fail");

        }
    }
最近我需要加密一个数据库文件,在互联网上进行了一次简短的搜索,我发现一些网站建议使用SQL密码

我以本文描述的方式在代码中实现了它,我唯一要做的就是继续使用该代码(我在前面已经说过),并在sqlite3\u open之后使用这两个命令:

const char* keyTB = [@"MySecretPassword" UTF8String];
sqlite3_key(myDatabase, keyTB, (int)strlen(keyTB));
为了检查我的数据库是否加密,我用文本编辑器打开它,我看到了以下内容:

øèDEÆ>o›$™;⁄iìÚÄ'†í]d=4ÓÓÓÈÒÒ[ÚaÚvÁƒƒi%≈ª、s◊c®Øì≈ ÜU-}Gecè≥’B∂¡¸¸Æ™√3Ìnú»YÆ“ß 埃弗诺≈ÛÍzÏ–Ct˘Ωfì217;º0ɣ ŸSw∂â≤≥‘=�10亿欧元±10亿欧元…∑:náaßOßßßßß(Bèࢸࢸࢸࢸࢸࢸࢸࢸ)


真的是SQL密码加密了我的数据库(256位AES加密)?或者需要在我的代码中进行一些配置?

建议您不要直接将密码嵌入数据库,但这并不是SQLCipher工作的严格要求。一旦在应用程序中集成了SQLCipher,您只需在打开密码后使用
sqlite3\U密钥
为数据库设置密钥即可连接。要验证加密数据库的状态,通常需要在数据库文件本身上运行
hextump-C
,内容应该是不可识别的。

建议您不要直接将密码嵌入数据库,但这并不是SQLCipher工作的严格要求。一旦您拥有SQLCipher inte在应用程序中,打开连接后,只需使用
sqlite3\u key
为数据库设置密钥即可。要验证加密数据库的状态,通常需要在数据库文件本身上运行
hextump-C
,内容应显示为不可识别。

建议不要直接加密数据库将密码输入数据库,但这不是SQLCipher工作的严格要求。一旦在应用程序中集成了SQLCipher,打开连接后只需使用
sqlite3_key
为数据库设置密钥。要验证加密数据库的状态,通常需要运行
hexdump-C
在数据库文件本身上,内容应该是不可识别的。

建议您不要直接将密码嵌入数据库,但这不是SQLCipher工作的严格要求。一旦在应用程序中集成了SQLCipher,只需使用
sqlite3为数据库设置密钥即可_密钥
打开连接后。要验证加密数据库的状态,通常会在数据库文件本身上运行
hextump-C
,内容应显示为无法识别