我已經從源代碼構建了幾個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