2011-04-07 68 views
0

我正在一个iPhone应用程序,因为我所有的内容存储在SQLite数据库。iPhone =如何查看iPhone SQLite数据库进行修改外部

现在总有越狱的威胁和其他垃圾邮件活动。所以开始知道Mac/windows可以使用一些软件直接访问应用程序目录。

所以我要保持我的数据库安全以及如果有任何人不得修改/替换数据库,然后当我开始我的应用程序应该使用一些变化与数据库进行代码来获得通知。

随着iPhone这样的事情将如何执行可以在任何一个建议?任何教程或代码?

我打算用一些加密算法将数据存储在加密的合成文件中,但是如何保护我想知道的SQLITE数据库的修改

在此先感谢。

回答

0

你真的不能知道

如果你想尽力而为,你可以类似计算的SHA512或SHA256数据库校验,并存储在另一个文件中,但它会需要阅读在整个数据库每个应用程序启动关机,这可能不会让用户满意。这需要时间,而不仅仅是让SQLite3在读取和写入上发挥它的魔力。

而且有人恶意可以修改存储的校验和,太。 (如果能够访问程序的目标代码,就很容易弄清楚你是怎么做的,所以没有必要试图混淆假设的散列校验例程。)

无论如何,它是他们的数据,对吧? :)所以如果他们想在幕后摆弄,让他们拥有它。您需要确保在服务器上接受的任何输入都会受到与接受来自Web浏览器的输入时相同的不信任。

+0

嗨sarnold,感谢您的回复 – 2011-04-07 09:11:38

+0

每次我的应用程序进入后台或唤醒时,我是否可以检查数据库文件?数据库中是否存在任何更新或进行了任何修改或以任何方式执行该操作在现场改变?我可以保留我的SQLITE数据库密码吗? – 2011-04-07 09:13:39

+0

@iPhone Fun,您可能可以在每次睡眠/唤醒时检查数据库,但这会进一步减慢任务切换速度。除非数据库非常小,否则用户可能会不喜欢这种情况。您可能可以在数据库中构建一个加密包装,但无疑会为任务切换添加_serious_延迟。 – sarnold 2011-04-07 09:23:27