2012-03-01 2 views
2

PHP 응용 프로그램 용으로 암호화 된 sqlite 데이터베이스를 지원할 것을 고려 중입니다. 나는 PHP의 SQLite3 익스텐션을 사용하고 있으며, 이미 암호화 방법을 지원하고 있으며 적어도 SQLite3 :: __ construct를 사용하면 암호화 키가 전달 될 수 있습니다.SQLite3 데이터베이스 암호화 - 암호화 라이브러리를 결정합니까?

내가 알아낼 수 없었던 것은 문서에서 말한 암호화 라이브러리입니다. 이다

  • sqlcipher
  • SQLite는 나에게 분명하지 않다 무엇
  • SQLite는 토굴

를 참조하십시오 :

  • 이러한 라이브러리는 sqlite3를 통합하는 방법을 인터넷 검색으로 난 다음 발견
  • speci와 관련하여 서로 호환성을 공유하는 경우 암호화 키를 위조하고 데이터 액세스 설정 등
  • 내 응용 프로그램에서 SQLite3 설치가 지원하는 암호화 라이브러리가 있으면이를 자동으로 검색 할 수 있으므로 내 응용 프로그램이 다른 암호화 라이브러리를 지원할 수 있습니다.

도움이 되었으면 좋겠습니다.

답변

1

필자가 알고있는 한, PHP를 여는 데 전달되는 암호는 암호화 지원이 컴파일 된 SQLite 버전을 사용하는 경우에만 작동합니다 (즉, 암호화가 기본 빌드에서 작동하지 않음).

일부 사용자는 SQLCipher 코드베이스를 사용하여 PHP 소프트웨어를 작성하여 PHP에서 SQLCipher를 성공적으로 사용하게되었습니다. 자세한 내용은 여기 스레드에서 사용할 수 있습니다 :

http://groups.google.com/group/sqlcipher/browse_thread/thread/6d77e4ef2a1530d7

+1

이제 SQLCipher를 PHP http://sqlcipher.net/sqlcipher-for-php/와 함께 사용하는 방법에 대한 공식 문서가 추가되었습니다. –

1

sqlite3를 라이브러리는 암호화를위한 지원을 구축 할 필요가있다. 이러한 프로젝트 (및 기타 : https://stackoverflow.com/a/5877130/502789)를 사용하여 암호화 지원이 포함 된 sqlite3.so/dll을 얻을 수 있습니다.

그래서, 질문 ...

  1. 그들은 SQLite는 통합하지 않습니다. 이들은 암호화 지원이 포함 된 대체 sqlite3 라이브러리를 제공합니다.
  2. 바닐라 SQLite3은 암호화에 필요한 API를 제공하지만 아직 구현되지 않았습니다. 나는 SQLiteCrypt가 자체 API를 사용하므로 여기서는 작동하지 않을 것이라고 생각한다.
  3. SQLite3 설치가이 기능을 지원하지 않으므로이 기능으로 컴파일 된 SQLite3 라이브러리로 교체해야합니다 (링크 된 옵션 참조).

NB : PHP + SQlite3 암호화를 사용하지 않았습니다.SQLite는 암호화를위한 유용한 듯

0

참조하십시오 내 대답을 사용하는 방법을 설명 관리자 : sqlite3를가 내장되어 https://stackoverflow.com/a/49161716/9418360

암호화를위한 인터페이스를 제공합니다. config.m4에서 활성화해야합니다 : -DSQLITE_HAS_CODEC = 1 AES 기반의 자체 암호화를 개발했습니다./ext/sqlite3/libsqlite에있는 몇 개의 C 파일은 훌륭하게 작동합니다. 전체 데이터베이스 파일이 암호화되어 있으므로 PHP에서 암호화 된 데이터를 보낼 필요가 없습니다. 곧 내 코드를 게시 할 준비가되면이 게시물이 업데이트됩니다. 건배.

관련 문제