首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iphone数据安全

iphone数据安全
EN

Stack Overflow用户
提问于 2010-11-06 14:08:18
回答 3查看 160关注 0票数 1

我是IPhone Dev的新手,

我有一个包含大量安全重要数据的应用程序,经过多次搜索后,我意识到 SQLite 是将我的数据(大量)放入的最合适的方式,但我发现有些人在谈论破解受密码保护的SQLite文件,如果我使用自定义的it...or搜索来创建自己的数据结构,那么就有一种安全使用SQLite的方法。

预先鸣谢;

编辑:如果我加密了数据并在运行时对其进行解密,我将失去如下信息:

基于SQL

  • performance

  • 搜索
EN

回答 3

Stack Overflow用户

发布于 2010-11-06 15:02:08

因为SQLite数据库只是/Documents文件夹中的一个文件--您可以在启动应用程序时解密它,并在退出时重新加密它。在iPhone中已经内置了公钥和AES函数来实现这一点。

您可能希望使用用户也输入的密码。

一定要以原子/幂等的方式这样做,这样如果加密/解密/复制/移动/重命名进程被中断,就不会损坏文件!

票数 0
EN

Stack Overflow用户

发布于 2010-11-06 17:25:17

你看过利用东京内阁吗?您可能可以通过存储二进制对象来完成一些任务。(...just是一个想法。)

票数 0
EN

Stack Overflow用户

发布于 2012-06-10 09:54:41

看看http://sqlcipher.net/,它使用AES (透明地)将数据存储在SQLite中--对于用例来说,它应该足够强大。

其余的取决于你的情况:

1)系统是否离线?您将不能做一个安全的持久登录-用户将不得不在每次登录时,一个应用程序到前台,以访问数据。

你的系统在线吗?持久化登录是可能的,因为当设备丢失时,服务器端认证组件可以为用户/设备停用。用户输入密码并使用此令牌解锁数据库(具体实现由您决定,我将使用显式设备-服务器与公钥/私钥配对).

需要记住的一种特殊情况是密码更改。它可以处理使用数据重新导入到一个新的加密数据库。要旨:

您需要要求用户输入旧密码,以便解锁当前数据库进行读取,然后为新密码创建新密码,然后将旧数据导入新数据库。当进程完成后,只需删除旧的数据库.

希望能帮上忙..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4113416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档