Я построил несколько библиотек из источника. Они в основном из одного источника, sqlite-3.6.22, Open SSL 0.9.8 и sqlcipher.SQLite Шифрование, отличное от платформ
Причина, по которой я построил два, заключалась в том, что мне нужен был один для работы с проектом C++, а другой - как драйвер JDBC для java (так что java jni dll).
Теперь у меня есть две библиотеки DLL, я могу писать и создавать базы данных на C++ и C# (используя C один), и то же самое в java. Оба они отвечают так, как я ожидал, вы можете открыть их, если вы дадите правильный пароль, он терпит неудачу, если вы дадите неправильный и т. Д. Оба теоретически должны быть по умолчанию для sqlcipher, который жестко привязан к aes-256- CBC. Однако я не могу открыть базу данных, созданную с помощью одной с другой. Я могу открыть базу данных, сделанную с версией c в студии управления SQLite3, но только если я положу пароль с выбранным RSA, я не могу открыть тот, который был создан в java во всем, что у меня есть.
Другое дело, что если я создаю две базы данных с идентичным содержимым с базой данных c, они байт для байта идентичны, тогда как java - нет.
Я уверен, что делаю что-то не так, но я действительно не вижу его - насколько я могу видеть, что java работает нормально (проще отлаживать по какой-то причине).
Извините за ужасную опечатку «differening», пожалуйста! – Woody
Не уверен, имеет ли значение мой вопрос. Можете ли вы создать две незашифрованные базы данных с Java, которые побайтно идентичны? –
Я исправил вашу опечатку! – CraigTP