- blogs:
- cles::blog

256-bit AES で暗号化された SQLite

SQLite について調べていたら、SQLCipher という 256-bit AES で暗号化する機能がついた SQLite を見つけたのでメモ。
パスフレーズをどうやって管理するのかという問題はありますが、データを透過的に暗号化できるのは便利そうです。
Home - SQLCipher - Open Source Full Database Encryption for SQLite
SQLCipher is an SQLite extension that provides transparent 256-bit AES encryption of database files. Pages are encrypted before being written to disk and are decrypted when read back. Due to the small footprint and great performance it’s ideal for protecting embedded application databases and is well suited for mobile development.
以下、インストールメモ。
† ビルドしてみる
基本的には README に書いてあるとおりのやり方ですんなりビルド出来ます。Windows 版の prebuild が有料になっているようなので、Windows の場合は一筋縄ではいかないのかもしれませんが。
これでディレクトリに sqlite という SQLCipher のバイナリが生成されます。
† 動作テストしてみる
まず、 passphrase というパスワードでデータベースを初期化して、テーブルを作成し、データを入れておきます。
パスワードを設定しないで、select するとエラーになります。
パスワードをきちんと設定してやれば、きちんと select できるようになります。
ちなみに PRAGMA は一番最初に必ず実行しなければならないようです。一度でも Error: file is encrypted or is not a database というエラーが出るようになってしまうと、データベースを閉じるまで PRAGMA を設定してもデータが取り出せませんでした。さらに気をつけなければいけない点としては、コマンドラインから直接 PRAGMA を設定しまうとパスワードがヒストリーファイルに残ってしまうことでしょうか。運用上のポカミスになりやすいので、このあたりも気をつけなければいけません。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4727
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . リモートデスクトップで Alt + PrtSc と同じことをするには(3171)
3 . RDP のプロトコルを TCP だけに変更する(2430)
4 . 「日次」は「にちじ」じゃない?(2259)
5 . リモートデスクトップで Ctrl + Alt + Del キーを送信するには(2184)