SQLiteはサーバとしてではなくアプリケーションに組み込まれて利用される軽量DBMSデータベースである。中小規模ならば速度も遜色はない。
また、APIは単純で単にライブラリを呼び出すだけであり、データの保存には単一のファイルしか使用しない事も特徴である。
クライアント/サーバモデルではないので、SQLiteの無料版中に一般的なデータベースのユーザの概念もないである。データを保存する単一ファイルも暗号化されてない。それはセキュリティ必要があるアプリケーションに対して不便だとなる。
Adobe AIR 1.5におかけ様でSQLiteデータベースの暗号化は簡単で実装できる。以下はサンプルソースコードである。
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:WindowedApplication
- xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute"
- creationComplete="openDatabase()"
- height="150">
- <mx:Script>
- <![CDATA[
- import com.hurlant.crypto.prng.Random;
- private var storedKey:ByteArray;
- private var conn:SQLConnection;
- [Bindable]
- private var dbFile:File
- private function createRandomKey():ByteArray {
- var encryptionKey:ByteArray = new ByteArray();
- var random:Random = new Random();
- random.nextBytes(encryptionKey, 16);
- return encryptionKey;
- }
- private function openDatabase():void{
- storedKey = EncryptedLocalStore.getItem("dbKey");
- if(!storedKey) {
- storedKey = createRandomKey();
- EncryptedLocalStore.setItem("dbKey", storedKey, false);
- }
- conn = new SQLConnection();
- dbFile = File.applicationStorageDirectory.resolvePath("EncryptedDB.db");
- conn.addEventListener(SQLEvent.OPEN, openHandler);
- conn.openAsync(dbFile,SQLMode.CREATE,null,false,1024,storedKey);
- }
- private function openHandler(event:SQLEvent):void {
- traceTxt.text += "The database was opened successfully \n\n";
- traceTxt.text += dbFile.nativePath + "\n\n";
- }
- ]]>
- </mx:Script>
- <mx:TextArea width="100%" height="100%" id="traceTxt"/>
- </mx:WindowedApplication>
メインコンテンツEND ■
Posted on Saturday, 22nd November 2008 by admin
Tags: Adobe, AIR, DataBase, SQLite
Posted in AIR | Comments (1) | 1,697 views

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