我创建了一个应用程序,我在其中从网站获取个人信息并将其存储在我的 sqlite3 本地数据库中。经过身份验证的用户只有在成功登录后才能看到他们的信息。然后我根据需要显示它。我不希望这些信息在手机丢失时被任何人窃取。
我已经实现了这样一个功能,即当应用程序从后台转到前台时,它会请求在应用程序中硬编码的 pin。
我的问题:
当手机丢失时,任何人都可以访问我的 sqlite3 本地数据库吗?
有没有办法加密数据库并在需要时解密?
我将如何确保数据库不易受攻击。
谢谢你
最佳答案
试试这个..
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dbPath = [documentsDirectory stringByAppendingPathComponent:@"myDatadase.sqlite"];
if (sqlite3_open_v2([dbPath UTF8String], &database, SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE|SQLITE_OPEN_FILEPROTECTION_COMPLETEUNTILFIRSTUSERAUTHENTICATION, NULL) == SQLITE_OK){
NSLog(@"db opened securely");
}else{
NSLog(@"db not opened");
}
关于iphone - 当手机丢失时,任何人都可以从 iPhone 中的应用程序访问我的 sqlite3 数据库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814133/