2012-02-15 107 views
1

如果我创建从我的黑莓应用程序SQLite数据库,说A,然后是有可能在黑莓数据库可以在同一台设备是由另一appliation乙访问?如果是的话,那么我怎么才能实现proection,以便只有创建sqlite数据库的应用程序才具有访问权限?黑莓数据库保护

p.s.看看这个http://docs.blackberry.com/en/developers/deliverables/17952/Protecting_a_SQLite_database_1219777_11.jsp

我不完全理解的加密和保护部分样品。如果有人能够对此提供暗示,那将非常有帮助。

在此先感谢

回答

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)); 

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

我缺少什么吗?

3

所有(不平凡)BB的应用程序在真实设备上运行需要有一个代码签名密钥。 这个例子谈到的数据库加密使用密钥,以防止其他应用程序访问它(因为他们不知道你的密钥)

+0

非常感谢小费。 CodeSigningKey = CodeSigningKey.get(CodeModuleManager.getModuleHandle(“SQLiteDemo”),“XYZ”);如果你看到代码示例,这里是什么“XYZ”。这与我在发布前签署应用程序时使用的密钥相同吗? – arin 2012-02-15 09:44:17

+1

http://supportforums.blackberry.com/t5/Java-Development/Signer-ID-BlackBerry-Signing-Authority-Tool/td-p/53070 – seand 2012-02-15 14:45:21

+0

非常感谢!我会尽快通过它,并尽快回复您的理解。 – arin 2012-02-16 06:34:46