SQLiteはサーバとしてではなくアプリケーションに組み込まれて利用される軽量DBMSデータベースである。中小規模ならば速度も遜色はない。

また、APIは単純で単にライブラリを呼び出すだけであり、データの保存には単一のファイルしか使用しない事も特徴である。

クライアント/サーバモデルではないので、SQLiteの無料版中に一般的なデータベースのユーザの概念もないである。データを保存する単一ファイルも暗号化されてない。それはセキュリティ必要があるアプリケーションに対して不便だとなる。

Adobe AIR 1.5におかけ様でSQLiteデータベースの暗号化は簡単で実装できる。以下はサンプルソースコードである。

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:WindowedApplication
  3. xmlns:mx="http://www.adobe.com/2006/mxml"
  4. layout="absolute"
  5. creationComplete="openDatabase()"
  6. height="150">
  7. <mx:Script>
  8.  
  9.      <![CDATA[
  10.      import com.hurlant.crypto.prng.Random;
  11.  
  12.      private var storedKey:ByteArray;
  13.      private var conn:SQLConnection;
  14.  
  15.      [Bindable]
  16.      private var dbFile:File
  17.      private function createRandomKey():ByteArray {
  18.  
  19.          var encryptionKey:ByteArray = new ByteArray();
  20.          var random:Random = new Random();
  21.          random.nextBytes(encryptionKey, 16);
  22.          return encryptionKey;
  23.      }
  24.  
  25.      private function openDatabase():void{
  26.          storedKey = EncryptedLocalStore.getItem("dbKey");
  27.  
  28.          if(!storedKey) {
  29.              storedKey = createRandomKey();
  30.              EncryptedLocalStore.setItem("dbKey", storedKey, false);
  31.          }
  32.  
  33.          conn = new SQLConnection();
  34.          dbFile = File.applicationStorageDirectory.resolvePath("EncryptedDB.db");
  35.          conn.addEventListener(SQLEvent.OPEN, openHandler);
  36.          conn.openAsync(dbFile,SQLMode.CREATE,null,false,1024,storedKey);
  37.      }
  38.  
  39.      private function openHandler(event:SQLEvent):void {
  40.          traceTxt.text += "The database was opened successfully \n\n";
  41.          traceTxt.text += dbFile.nativePath + "\n\n";
  42.      }
  43.      ]]>
  44.  
  45. </mx:Script>
  46. <mx:TextArea width="100%" height="100%" id="traceTxt"/>
  47. </mx:WindowedApplication>
メインコンテンツEND ■
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted on Saturday, 22nd November 2008 by admin

Tags: , , ,
Posted in AIR | Comments (1) | 1,697 views

Related Posts

One Response to “Adobe AIR 1.5でSQLiteデータベースを暗号化とするサンプルソースコード”

  1. Adobe AIRアプリケーションのインストールパスにファイルURIを取得するサンプルソースコード | DigiTechLog Dot Com Says:

    [...] この前に、Adobe AIR 1.5でSQLiteデータベースを暗号化とするサンプルソースコード、CPreferencesManager: Adobe AIRのpreferencesマネージャークラスであるなどを勉強しました。今回はAIRの勉強を続き [...]

Leave a Reply