최근 프로젝트 요구로 인해 서버 측에서 생성된 sqlite를 암호화해야 합니다. 서버 백엔드는 PHP로 작성되었으며 운영 체제는 CentOS입니다. 오픈 소스 sqlite3에는 데이터베이스 암호화 인터페이스가 예약되어 있습니다. , 그러나 구현되지는 않았습니다.그래서 인터넷에서 발견한 SQLCipher는 sqlite3에서 구현하지 않는 암호화 기능을 구현하고, PHP의 sqlite3 확장을 다시 컴파일하여 sqlite 데이터베이스 암호화를 지원할 수 있습니다.
구체적인 작업은 공식 홈페이지 주소: https://www.zetetic.net/sqlcipher/sqlcipher-for-php/
공식 웹사이트에서의 작업은 시스템입니다. Ubuntu를 사용하면 여기에서 해당 명령을 CentOS에서 사용할 수 있도록 변환할 수 있습니다. 공식 웹사이트의 단계에 따라 성공적으로 컴파일하세요.
컴파일이 성공적으로 완료되면 sqlite3.so가 생성됩니다. 이전 서버 PHP 확장에서 sqlite3.so를 교체하면 됩니다(교체 후 백업을 만드는 것이 가장 좋습니다). 완료되면 Apache 서버를 다시 시작합니다.
내려와서 테스트합니다. 테스트 코드:
//비밀번호 12345678로 test.sqlite 파일을 생성합니다. 매개변수 6은 파일이 있으면 열고, 있으면 생성한다는 의미입니다. 구체적인 내용은 소스파일의 sqlite3.c를 참조하여 관련 내용을 확인하시기 바랍니다
$db=new Sqlite3("test.sqlite ",6,"12345678");
$db->exec("create table mytest (name varchar(200) )");
?>
결과가 출력된다면 sqlite3이 성공적으로 재컴파일되었다는 뜻이지만, 생성된 데이터베이스가 암호화되었는지 확인해야 합니다. 이전에 몇 가지 도구를 사용하여 test.sqlite를 열어보면 일반적으로 오류가 표시됩니다. 이는 sqlite가 성공적으로 암호화되었음을 의미합니다.
저작권 안내: 이 글은 다음과 같습니다. 블로거의 원본 기사이며 블로거의 허가 없이는 재인쇄할 수 없습니다.