之前我使用了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密码。
我用下面描述的方式在代码中实现了它
link
,而我唯一需要做的就是使用该代码(我之前说过),然后在
sqlite3_打开
:
const char* keyTB = [@"MySecretPassword" UTF8String];
sqlite3_key(myDatabase, keyTB, (int)strlen(keyTB));
为了检查我的数据库是否加密,我用文本编辑器打开它,我看到:
¨代码>o$;i] d=4美元?[avi%.sc U]GecB3nY“
?w·f±盎司Ct°f0]
Sw?=HBN±H.na?O(B;
SQL密码真的加密了我的数据库吗(256位AES加密)?或者需要在我的代码中进行一些配置?