iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – FMDB和加密大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用FMDB来处理sqlite,我宁愿避免依赖sqlCipher.我怎样才能简单地利用iOS内置的DataProtection功能?这是可能的 – 唯一的要求是在手机被盗时保护数据.

如果使用PIN解锁手机,那么用户可以访问数据库是好的 – 这是他们的数据.

解决方法

查找您执行 databaseWithPath :(或initWithPath :)的行,然后添加

FMDatabase *db = [FMDatabase databaseWithPath:path];

NSDictionary *attributes = @{NSFileProtectionKey: NSFileProtectionCompleteUnlessOpen};
NSError *error;
BOOL success = [[NSFileManager defaultManager] setAttributes:attributes
                                                ofItemAtPath:path
                                                       error:&error];
if (!success) {
    NSLog(@"File protection Failed: %@",error);
}

NSFileProtectionKey密钥的possible Values是:

> NSFileProtectionNone:
文件没有与之相关的特殊保护.它可以随时读取或写入.
> NSFileProtectionComplete:
文件以加密格式存储在磁盘上,在设备锁定或引导时无法读取或写入.
> NSFileProtectionCompleteUnlessOpen:
文件以加密格式存储在磁盘上.可以在设备锁定时创建文件,但一旦关闭,在设备解锁之前无法再次打开.如果在解锁时打开文件,即使用户锁定设备,您也可以继续正常访问该文件.创建和打开文件时会有一个小的性能损失,但不是在写入或读取时.当设备解锁时,可以通过将文件保护更改为NSFileProtectionComplete来缓解此问题.
> NSFileProtectionCompleteUntilFirstuserAuthentication:
文件以加密格式存储在磁盘上,直到设备启动后才能访问.用户首次解锁设备后,即使用户随后锁定了设备,您的应用也可以访问该文件并继续访问该文件.

正确的保护类型可能取决于iOS的版本(最后两个在iOS 4上不可用)以及在设备锁定时是否使用数据库.

大佬总结

以上是大佬教程为你收集整理的ios – FMDB和加密全部内容,希望文章能够帮你解决ios – FMDB和加密所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:fmdbios加密