2012-11-26 5 views
0

ZeosDB 구성 요소를 사용하여 sqlite 데이터베이스에 액세스하고 있습니다. 그것은 암호화되지 않은 DB에서 잘 작동합니다.ZeosDb : SQLite 암호화

암호화 된 데이터베이스에서 수신 : 파일이 암호화되었거나 데이터베이스가 아닙니다. 암호를 설정하면 Eaven.

내가 사용하는 DLL 파일이 잘못 되었습니까? the official page에서 마지막 dll을 사용합니다. 기본적으로 암호화를 지원하지 않습니다?

+0

DB를 어떻게 암호화합니까? DB 관리 스튜디오를 사용하여 암호화하고 있습니까? –

+0

예 .Navicat.suggestions? – opc0de

답변

4

SQLite3에는 several encryption schemes이 있습니다.그 중

, 당신은 :

  • 공식 sqlite3를 저자의 여유 암호화 라이브러리, SQLite Encryption Extension (SEE) 이름 : 그냥 지불하고 DLL을 사용하고, 데이터베이스 키를 설정 초기화를 수정;
  • 오픈 소스 SQLCipher;
  • WXSQlite3 래퍼;
  • 오픈 소스 정적 연결 버전 included in our mORMot (사용자 지정 암호화 사용) - 정적 연결을 사용하면 외부 sqlite3.dll을 사용하지 않아도되므로 배포 및 지원을보다 쉽게 ​​할 수 있습니다. MS SQL, 오라클 또는 OleDB/ODBC와 동일한 소스 코드로 Delphi 5에서 XE3까지이며 great speed;
  • 위의 링크를 참조하십시오.

ZeosDB SQLite3 레벨 핸들이 없습니다.

SQlite3 API 드라이버 (단위 ZPlainSqLiteDriver)에는 암호가 없습니다. 그래서 당신은 그것을 바꿔야 할 것입니다. 또는 암호화 API를 지원하는 다른 래퍼로 전환하십시오.

3

최근에 (UniDac 사용) 동일한 문제가있었습니다. 공식 DLL은 암호화를 지원하지 않습니다. 암호화를 포함하는 몇 개의 라이브러리가 있지만 상호 교환 할 수는 없습니다. 나는. 하나의 SQLite DLL로 암호화 된 DB는 다른 배포본으로 복호화 될 수 없습니다. 나는 네 사건이 같다고 생각해.

내 솔루션이었다

  • ...static bunde... package (x86, x64) for .NET 다운로드 -이 암호화 (I 생각 윈도우 DPAPI) sqlite3.dll을에 System.Data.SQLite.dll 명칭 변경
  • 지원 ->이 DLL이 네이티브 DLL입니다 및 내 DBMS의 폴더에서 ENC/DEC
  • 을 지원 나는

위 DBMS가 새 DLL을 사용하여 암호화이 방법을 추출하고, 프로그램이 암호를 해독 할 수와 SQLite는 DLL을 교체 동일한 버전의 DLL을 사용합니다.

참고 :

은 또한에 좀 걸릴 수 있습니다

  • 은 또한 당신이 당신의 프로그램 디렉토리에 sqlite3.dll을 복사해야합니다. 다른 많은 제품은 SQLite를 사용하며 % PATH %에 있으므로 "올바른"SQLite3.dll이 실행 파일에 의해로드된다는 보장이 없습니다. Interesting solution can be found here;
  • 무료로 .NET 버전을 사용할 수 있는지 보려면 because of this 라이센스를 참조하십시오.
관련 문제