【问题标题】:how to encrypt an database using sql cipher如何使用 sql cipher 加密数据库
【发布时间】:2011-08-04 15:46:08
【问题描述】:

我想使用 sqlcipher 加密数据库。

我已经完成了集成 os openssl 和 sqlcipher 的集成,并且构建工作完美。

但我的问题是我无法加密我的数据库。我不知道如何执行该活动或使用 sql 密码加密数据库的方法。

我阅读了SQL Cipher,但我无法理解相同的过程。我尝试了他们提供的代码但无法正常工作。

编辑:谁能告诉我如何设置 PRAGMA 密钥,然后如何开始加密?因为我的加密只剩下这部分了。

请帮助我摆脱这种情况。

提前致谢

【问题讨论】:

  • 我刚刚完成了加密出口废话法律文书工作(花了大约一个月,只是因为我加密了愚蠢的数据库)。当您真的想启用加密时,请立即进行文书工作,而不是在您准备提交应用程序时,这将为您节省大量时间。
  • 您想在 iPhone 中加密它吗?还是在您从服务器或其他东西获取之前?
  • 当我创建我的数据库时,它应该被加密,这样任何来自 MAC 或 windows 的其他外部应用程序都不能访问数据库。

标签: iphone ios4 sqlite sqlcipher


【解决方案1】:

使用 SQLCipher 确保您拥有全新的 SQLite 数据库。在数据库由于某种原因已经有数据的情况下尝试使用密钥对数据库进行编译指示只是尝试对其进行解密。

这里有一些关于working with an existing SQLite databasehere 的附加信息。在此示例中,encrypted.db 是您创建和编译的全新数据库。

ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'secret'; -- create a new encrypted database
CREATE TABLE encrypted.t1(a,b); -- recreate the schema in the new database (you can inspect all objects using SELECT * FROM sqlite_master)
INSERT INTO encrypted.t1 SELECT * FROM t1; -- copy data from the existing tables to the new tables in the encrypted database
DETACH DATABASE encrypted;

【讨论】:

  • 嗨乔,我已经在 sql 命令提示符下尝试了上述命令并且也获得了成功但是我不知道如何使用相同的 xcode 进行开发并使用代码加密我的 .db 文件为 iPhone。你能告诉我怎么做吗?
  • 您的设置/目标是什么?您的计算机上是否有一个已经充满数据的 SQLite 数据库,并且您希望它在 iPhone 上已经被加密?或者你只是有一个架构,需要在 iPhone 上设置,所有收集的数据都将被加密。
  • 如果您在 iOS 中使用 SQLCipher,您将使用 SQLite C API 与数据库进行交互。在this tutorial 的末尾有一些示例说明如何使用API​​ 设置密码。您可以找到SQLite online 的参考文档。最后,您可以使用名为 SQLCipherSpeed on GitHub 的 SQLCipher 查看一个完整运行的 iOS 应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 2023-02-07
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多