2012-01-14 55 views
0

我想将SQLite数据库(* .db文件)添加到AIR应用程序,如图像,mp3等。 这是为了确保将数据库复制到其他用户是不可能的。如何将SQLite DB(* .db文件)嵌入到AIR应用程序中?

+0

可能重复的[我可以嵌入一个空气应用程序中的SQLite数据库?](http://stackoverflow.com/questions/573350/can-i-embed-a -sqlite-database-in-an-air-application) – ericsoco 2014-12-10 05:27:45

回答

2

不,你不能。即使你可以打包,数据也不会真正受到保护:因为.air包实际上不过是一个增强的.zip压缩文件,任何人都可以从.air文件中提取数据库。

您需要做的是加密您的数据库并使用密码对其进行保护,以便只有授权用户才能访问数据库。

关于如何做到这一点,有充足的文档。这里有一个来自Adobe的教程,让你开始:http://www.adobe.com/devnet/air/flex/quickstart/articles/encrypted_database.html

+0

实际上,您可以将数据库文件嵌入到AIR应用程序中。我只是把这个问题标记为一个骗局。这个答案描述了这个过程:http://stackoverflow.com/questions/573350/can-i-embed-a-sqlite-database-in-an-air-application – ericsoco 2014-12-10 05:28:16

+0

我应该限定我的评论说,“嵌入AIR应用程序“并不意味着将其包含在AIR归档文件中,正如@RIAstar所说,它只是一个.zip归档文件。所以,除非你加密它,否则它不会受到保护,就像RIAstar说的那样。但是,除了在运行时通过网络连接流式传输资产之外,AIR还提供比其他任何选项更多的保护。 – ericsoco 2014-12-10 05:31:35

1

我认为这是不可能的。如果您将其嵌入到空气文件并安装AIR应用程序,则数据库将被复制到安装文件夹。

你可以在用户存储位置

var file:File = File.applicationStorageDirectory.resolvePath("name.db"); 

用户仍然可以在资源管理器浏览文件创建数据库。它将被存储在/ users /用户名/ appdata/appname/Local Store

AppData是一个隐藏文件夹。

相关问题