15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Arbeiten mit lokalen SQL-Datenbanken in AIR<br />

// ...<br />

var xor:uint = o1 ^ o2;<br />

result.writeUnsignedInt(xor);<br />

// ...<br />

Wenn eine Schleife abgeschlossen ist, wird das ByteArray mit dem XOR-Ergebnis zurückgegeben.<br />

}<br />

}<br />

// ...<br />

return result;<br />

Hashing des Schlüssels<br />

Adobe AIR 1.5 und höher<br />

Nachdem das verkettete Kennwort und der Salt-Wert kombiniert wurden, besteht der nächste Schritt darin, diesen<br />

Wert noch sicherer zu gestaltet, indem Hashing mit dem SHA-256-Hashing-Algorithmus ausgeführt wird. Durch das<br />

Hashing wird Angreifern das Reverse-Engineering erschwert.<br />

Zu diesem Zeitpunkt verfügt der Code über ein ByteArray mit den Namen unhashedKey, das die Kombination aus<br />

dem verketteten Kennwort und dem Salt enthält. Das ActionScript 3.0-Kernbibliothekprojekt (as3corelib) enthält eine<br />

SHA256-Klasse im com.adobe.crypto-Paket. Die SHA256.hashBytes()-Methode, die eine SHA-256-Hashfunktion<br />

für ein ByteArray ausführt und einen String zurückgibt, der das 256-Bit-Hash-Ergebnis als Hexadezimalzahl enthält.<br />

Die EncryptionKeyGenerator-Klasse verwendet die SHA256-Klasse für das Hashing des Schlüssels:<br />

var hashedKey:String = SHA256.hashBytes(unhashedKey);<br />

Extrahieren des Verschlüsselungsschlüssels aus dem Hash<br />

Adobe AIR 1.5 und höher<br />

Bei dem Verschlüsselungsschlüssel muss es sich um ein ByteArray handeln, das genau 16 Byte (128 Bit) lang ist. Das<br />

Ergebnis des SHA-256-Hash-Algorithmus ist immer 256 Bit lang. Der letzte Schritt besteht darin, 128 Bit aus dem<br />

Hash-Ergebnis auszuwählen, die als eigentlicher Verschlüsselungsschlüssel verwendet werden.<br />

In der EncryptionKeyGenerator-Klasse reduziert der Code den Schlüssel auf 128 Bit, indem die<br />

generateEncryptionKey()-Methode aufgerufen wird. Dann wird das Ergebnis dieser Methode als Ergebnis der<br />

getEncryptionKey()-Methode zurückgegeben:<br />

var encryptionKey:ByteArray = generateEncryptionKey(hashedKey);<br />

return encryptionKey;<br />

Es ist nicht notwendig, die ersten 128 Bits als Verschlüsselungsschlüssel zu verwenden. Sie könnten auch einen Bereich<br />

von Bits auswählen, der an einem beliebigen Punkt beginnt, Sie könnten jedes zweite Bit auswählen oder eine andere<br />

beliebige Auswahl von Bits verwenden. Wichtig ist, dass der Code 128 bestimmte Bits auswählt und jedes Mal<br />

dieselben 128 Bits verwendet.<br />

Letzte Aktualisierung 27.6.2012<br />

820

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!