最近、プロジェクトのニーズにより、サーバー側で生成された SQLite を暗号化する必要があります。サーバーのバックエンドは PHP で書かれており、オペレーティング システムは CentOS です。オープンソースの sqlite3 はデータベース暗号化インターフェイスを予約しています。 そこで、sqlite3では実装されていない暗号化機能を実装し、PHPのsqlite3拡張機能を再コンパイルすることでsqliteデータベース暗号化をサポートできるSQLCipherを見つけました
具体的な操作については、の手順を参照してください。公式ウェブサイト、アドレス: https://www.zetetic.net/sqlcipher/sqlcipher-for-php/
公式ウェブサイトの操作には、システムは Ubuntu を使用しています。ここで、対応するコマンドを に変換できます。 CentOS で使用されるものについては、公式 Web サイトを参照してください。 操作手順が完了すると、コンパイルが成功します。 sqlite3.so が生成されるので、以前のサーバーの sqlite3.so を直接置き換えます。 php 拡張子 (置き換える前にバックアップを作成することをお勧めします)。置き換えが完了したら、Apache サーバーを再起動し、
テストコードをテストします:
//test.sqlite ファイルを作成します。パスワードは 12345678、パラメータ 6 は、存在する場合は開き、存在しない場合は作成することを意味します。具体的な情報については、ソースの sqlite3.c を参照してください。関連する表示用のファイル
$db=new Sqlite3("test.sqlite",6,"12345678");
$db->exec("create table mytest (name varchar( 200) )");
$db->exec("挿入
mytest (名前) 値に ('aaaa')");
$result
= $db->query('SELECT * FROM
mytest
');
print_f(
$result
); ?>
結果が出力できれば、sqlite3 が正常に再コンパイルされたことを意味します。ただし、生成されたデータベースが暗号化されているかどうかを確認する必要があります。生成された test.sqlite を使用できます。ツールを開こうとすると、通常、SQLite が正常に暗号化されたことを意味します。
ちなみに、Android と IOS をサポートする手順もあります。
著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。
上記は、CentOS 上の php がデータベース暗号化をサポートするために SQLCipher を介して sqlite3 をコンパイルする方法を内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。