소스에서 몇 가지 dll을 만들었습니다. 이들은 주로 같은 소스 인 sqlite-3.6.22, Open SSL 0.9.8 및 sqlcipher에 있습니다.플랫폼간에 SQLite 암호화가 다릅니다.
내가 2 개를 만든 이유는 C++ 프로젝트로 작업하고 Java 용 JDBC 드라이버 (Java jni dll)로 작업해야하기 때문입니다.
이제 저는 두 개의 DLL을 가지고 있습니다. C++ 및 C# (C를 사용하여)에서 데이터베이스를 작성하고 작성할 수 있으며 java에서도 마찬가지입니다. 이 두 가지 모두 내가 예상 한대로 응답합니다. 올바른 암호를 입력하면 열 수 있고 잘못 입력하면 실패 할 수 있습니다. 이론 상으로는 aes-256-bit로 하드 코드 된 sqlcipher의 기본값이어야합니다. cbc. 그러나 다른 데이터베이스로 만든 데이터베이스를 열 수 없습니다. SQLite3 Management 스튜디오에서 C 버전으로 만든 데이터베이스를 열 수는 있지만 RSA를 선택한 상태에서 암호 만 입력하면 java에있는 항목을 다른 항목으로 열 수 없습니다.
다른 점은 c 데이터베이스와 동일한 내용의 두 데이터베이스를 만들면 바이트가 동일하지만 자바는 그렇지 않다는 것입니다.
나는 분명히 잘못된 것을하고 있지만, 실제로는 볼 수 없다. 나는 자바가 어떤 이유로 디버깅하기 쉽도록 잘 볼 수있는 한 멀리 볼 수있다.
'differening'의 끔찍한 오타를 용서하십시오! – Woody
내 질문과 관련이 있는지 확실하지 않습니다. byte-for-byte가 동일한 두 개의 암호화되지 않은 데이터베이스를 Java로 생성 할 수 있습니까? –
본인의 오타가 수정되었습니다. – CraigTP