ios – FMDB和加密

ios – FMDB和加密,第1张

概述我正在使用FMDB来处理sqlite,我宁愿避免依赖SQLCipher.我怎样才能简单地利用iOS内置的DataProtection功能?这是可能的 – 唯一的要求是在手机被盗时保护数据. 如果使用PIN解锁手机,那么用户可以访问数据库是好的 – 这是他们的数据. 查找您执行 databaseWithPath :(或initWithPath :)的行,然后添加: FMDatabase *db = 我正在使用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和加密所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1076502.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存