database - SQLite - 创建加密数据库。怎么……?

标签 database apache-flex sqlite encryption

我如何创建一个加密的 SQLite 数据库,它实际上保持加密状态或者我可以在之后打开。

我使用了“可以”创建加密数据库的 SQLite2009 Pro 企业管理器,但在输入加密 key 后,它们就无法再打开了。

我使用 SQLabs 的 SQLiteManager 创建了一个加密的数据库,虽然这个数据库之后可以打开,但可以通过任何 SQLite 管理工具或代码来完成,不需要我输入的 key 。

那么,请问您到底如何创建一个加密的 SQLite 数据库?

我计划在 Adob​​e Flex 应用程序中使用该数据库。

谢谢。

最佳答案

SQLite 支持集成加密,但默认的开源 SQLite 发行版不支持加密。如果 SQLite 的加密版本都使用相同的加密扩展,则它们只能跨不同的客户端或工具移植。

SQLite 开发人员自己发布了支持透明加密的商业版 SQLite。当这个模块用于加密时,加密是跨平台的,写入文件的每个字节都是加密的。存储在磁盘上的加密 SQLite 文件中没有任何内容甚至表明它是一个 SQLite 数据库。许多工具通过允许您放入商业 sqlite.dll 文件代替开源文件来支持此实现。

还有支持加密的第三方扩展。例如,System.Data.SQLite 支持加密但利用 .NET 库来这样做,因此加密的 System.Data.SQLite 只能由另一个也使用 System.Data.SQLite 的客户端读取(这是故意的,出于尊重核心 SQLite 开发人员及其商业产品)。

Adobe AIR 1.5 支持加密。我不确定使用哪种机制,但我搜索过但找不到答案。 AIR 加密的数据库可能只能用 AIR 读取。我不确定这两种方式。但是,AIR 是学习使用加密数据库的一个很好的起点:

http://probertson.com/articles/2008/11/18/air-1_5-encrypted-sqlite-database-how-to/

关于database - SQLite - 创建加密数据库。怎么……?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4606677/

相关文章:

安卓 SQLite : Datetime between query

sqlite - monotouch 的 mvvmcross sqlite-net 插件

java - 如何从 Java & H2 DB 连接到 H2 数据库

apache-flex - 在 ActionScript 中创建一个带有图标的按钮

mysql - 如何使用一个查询获取包含子列表的列表?

python - 自定义用户身份验证。它是如何完成的,有最佳实践吗?

apache-flex - FlexBuilder 如何编译我的应用程序?

php - 使用主表引用子表

php - 如何从具有相同架构但不同架构名称的多个表中获取数据

python - Django 没有额外的表?