我已经从源代码构建了几个dll。他们主要来自同一个源码,sqlite-3.6.22,Open SSL 0.9.8和sqlcipher。不同平台之间的SQLite加密
我建立两个的原因是我需要一个用于处理C++项目,另一个作为java的JDBC驱动程序(所以java jni dll)。
现在我有两个DLL,我可以在C++和C#中编写和创建数据库(使用C),而在java中也是一样。这两种响应都如我所料,如果您提供正确的密码,您可以打开它们,如果您输入错误的密码,则会失败。 这两个理论上都应该是sqlcipher的默认设置,它被硬编码为aes-256- CBC。 但是,我无法打开一个与另一个做的数据库。我可以在SQLite3 Management Studio中打开使用c版本创建的数据库,但是只有当我将密码与RSA选中后,我才能打开在java中创建的任何其他数据库。
另一件事是,如果我使用c数据库制作两个具有相同内容的数据库,它们是字节相同的字节,而java的则不是。
我相信我做的东西很明显错了,但是我真的不能看到它 - 据我可以看到Java的一个工作正常(更容易调试出于某种原因)。
请原谅'不同'的可怕错字! – Woody 2011-01-10 09:14:36
不确定我的问题是否相关。您可以使用Java创建两个字节一致的未加密数据库吗? – 2011-01-17 14:36:40