黑莓数据库保护

时间:2012-02-15 06:41:59

标签: security sqlite blackberry protection

如果我从我的黑莓应用程序创建一个sqlite数据库,比如A,那么在黑莓中是否可以通过同一设备中的另一个应用程序B访问该数据库?如果是,那么我怎样才能实现保护,只有创建sqlite数据库的应用程序才具有访问权限?

P.S。看看这个http://docs.blackberry.com/en/developers/deliverables/17952/Protecting_a_SQLite_database_1219777_11.jsp

我不完全理解加密和保护部分的示例。如果有人可以给出一个暗示,那将会有很大的帮助。

提前致谢

2 个答案:

答案 0 :(得分:3)

在真实设备上运行的所有(非平凡的)BB应用程序都需要具有代码签名密钥。 此示例讨论的数据库加密使用密钥以防止其他应用程序访问它(因为他们不知道您的密钥)

答案 1 :(得分:0)

感谢seand我能够创建一个受保护的数据库......这是我的代码

            URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/MyEnProDatabase.db");
            DatabaseSecurityOptions dbso = new DatabaseSecurityOptions(true);

            CodeSigningKey codeSigningKey = CodeSigningKey.get(this);
            Database d = DatabaseFactory.create(myURI,dbso);
            d.close();
            DatabaseFactory.encrypt(myURI, new DatabaseSecurityOptions(codeSigningKey));

我用文件签名者app签署了鳕鱼。然后我写了一个简单的程序来删除这个数据库...请注意,这个新的应用程序不知道我在上面的create db app中使用的KEY文件。当我运行它时,它能够删除数据库。但这不应该发生,对吧?由于数据库是受保护的数据库,因此只能由使用相同密钥签名的应用程序访问...

我在这里错过了什么?