Bücher online kostenlos Kostenlos Online Lesen
Adobe Air (wiwobooks.com Release)

Adobe Air (wiwobooks.com Release)

Titel: Adobe Air (wiwobooks.com Release) Kostenlos Bücher Online Lesen
Autoren:
Vom Netzwerk:
Sie in Ihrer Fehlerbehandlungsroutine die errorID des Fehlers bzw. Fehlerereignisses überprüfen, können Sie zwischen einem falschen Schlüssel ( errorID == 3138 ) und anderen Fehlern unterscheiden.
    So geht es
So könnte ein Quelltextausschnitt aussehen, der eine verschlüsselte Datenbank aufruft:
    import flash.utils.ByteArray;
import flash.data.SQLConnection;
import flash.data.SQLMode;
import flash.errors.SQLError;
var dbFile:File = File.applicationStorageDirectory;
dbFile = dbFile.resolvePath("myDB.db");
var dbConn:SQLConnection = new SQLConnection();
var cryptKey:ByteArray = new ByteArray();
// Schlüssel erstellen und cryptKey zuweisen
// (siehe Kapitel 14.3; hier nicht gezeigt)
try {
    dbConn.open(dbFile, SQLMode.CREATE, false, 1024, cryptKey); }
catch(e:SQLError) {
    switch(e.errorID) {
case 3138:
trace("falscher Schlüssel!");
break;
    default:
// Fehlerbehandlung: andere Fehler
}
}
Listing 14.1 Beispiel: Datenbank verschlüsselt erstellen oder öffnen
14.2.2 Verschlüsselungs-Schlüssel einer Datenbank ändern
    Zwar können Sie eine unverschlüsselt angelegte Datenbank nicht nachträglich verschlüsseln und umgekehrt. Sie können aber den Schlüssel, mit dem eine Datenbank verschlüsselt ist, nachträglich ändern. Dazu brauchen Sie lediglich die verschlüsselte Datenbank zu öffnen und die SQLConnection -Instanzmethode reencrypt() aufzurufen. Die Neuverschlüsselung verläuft intern als separate Transaktion, sodass bei einem unvorhergesehenen Abbruch während des Vorgangs der ursprüngliche Zustand wiederhergestellt wird.
    Lösungsweg
1. Öffnen der Datenbankverbindung (siehe vorheriger Abschnitt)
    2. Erstellen einer ByteArray -Instanz und Zuweisen eines neuen 128 Bit langen Schlüssels (16 Zeichen)
3. Bei asynchronem Zugriff: Registrieren von Ereignis-Listenern für SQLEvent.REENCRYPT und SQLErrorEvent.ERROR
4. Aufruf der SQLConnection -Instanzmethode reencrypt() mit ByteArray -Instanz als einzigem Parameter
So geht es
Das folgende Beispiel zeigt einen möglichen Quelltextausschnitt für die erneute Verschlüsselung einer Datenbank:
    import flash.filesystem.File;
import flash.data.SQLConnection;
import flash.utils.ByteArray;
var dbFile:File = File.applicationStorageDirectory;
dbFile = dbFile.resolvePath("myDB.db");
var dbConn:SQLConnection = new SQLConnection();
var oldCryptKey:ByteArray = new ByteArray();
// wie Sie es nicht machen sollen: hartkodierte Schlüssel oldCryptKey.writeMultiByte("16-Zeichen-Code!", "iso-8859-15"); var newCryptKey:ByteArray = new ByteArray();
newCryptKey.writeMultiByte("neuer_128BitCode", "iso-8859-15"); try {
    dbConn.open(dbFile, SQLMode.UPDATE, false, 1024, oldCryptKey); dbConn.reencrypt(newCryptKey);
}
Listing 14.2 Beispiel: Verschlüsselung einer Datenbank mit neuem Schlüssel
14.3 Sicheren Schlüssel erstellen
    Jede Verschlüsselung ist nur so stark wir ihr Schlüssel. Wenn Sie einen Schlüssel verwenden, der leicht zu entschlüsseln ist, wird das Bemühen, Ihre Datenbank durch Verschlüsselung zu schützen, ad absurdum geführt. Bedenken Sie, dass alle erdenklichen Kombinationen von 16 Buchstaben, Ziffern und Satzzeichen nur einen Teil der mit 128 Bit erzielbaren Kombinationen ausmachen – verabschieden Sie sich also von der Vorstellung, einen 16 Zeichen langen Code selbst einzugeben oder durch den Benutzer Ihrer Anwendung eingeben zu lassen.
    Die Klasse EncryptionKeyGenerator des as3corelib-Projekts bietet einen bequemen Weg, einen 128 Bit langen Schlüssel aus einem eingegebenen oder abgerufenen Kennwort zu erstellen.
    EncryptionKeyGenerator prüft zudem ein angegebenes Kennwort auf folgende Mindestanforderungen:
    mindestens acht Zeichen
maximal 32 Zeichen
mindestens ein Kleinbuchstabe enthalten
mindestens ein Großbuchstabe enthalten
mindestens ein Zahl oder Zeichen enthalten
    Sie können diese Prüfung zudem vorab getrennt durchführen.
ActionScript Core Library (as3corelib)
    Das Projekt as3corelib ist eine kostenlose Quelltextbibliothek, die etliche nützliche Funktionen enthält, die den Umfang von ActionScript 3 sinnvoll erweitern. Für das Erstellen von Schlüsseln zur Verschlüsselung von Inhalten steht eigens die Klasse EncryptionKeyGenerator zur Verfügung, die in diesem Abschnitt verwendet wird. Für Details zu Download und Referenzierung von as3corelib in Ihr Projekt lesen Sie Abschnitt 3.5.
    Lösungsweg
1. Erstellen einer EncryptionKeyGenerator -Instanz
    2. Abfrage oder Abruf eines 8–32 Zeichen langen Kennworts mit jeweils mindestens einem

Weitere Kostenlose Bücher