Я решил это для приложения DVD, зашифровавшего все ресурсы на DVD и запустив HTTP-сервер внутри приложения AIR, которое расшифровывает его.
Работает следующим образом:
1 - изображения, видео или ресурсы зашифрованы и сохранены где угодно, в нашем случае папка ресурсов DVD с главным ключом.
2 - Приложение Air содержит внутри очень простой HTTP-сервер, который читает файл, расшифровывает его и отправляет только в то же приложение Air с помощью простого Flash Video Player или с помощью тега типа <img src="localhost:5050/assetcode.jpg">
.
Код, используемый внутри приложения air для передачи файла, выглядит следующим образом:
import com.hurlant.crypto.prng.ARC4;
import com.hurlant.util.Hex;
import com.hurlant.crypto.Crypto;
import com.hurlant.crypto.symmetric.ICipher;
var key:ByteArray = Hex.toArray(Hex.fromString("masterkey"));
var rc4:ARC4 = new ARC4(key);
var fs:FileStream = new FileStream();
fs.open( content, FileMode.READ );
var ba:ByteArray = new ByteArray();
fs.readBytes( ba, 0, fs.bytesAvailable );
ba.position = 0;
fs.close();
rc4.decrypt(ba);
//cipher.decrypt(ba);
innerSendHTML(s, ext2mime[content.extension], ba );
ba.length = 0;
Мы используем алгоритм RC4, потому что он быстрее в наших тестах.
Для HTTP-сервера мы использовали пример http-приложения из Flash Camp 2010, его можно найти в google.
Привет
-
www.imaginacolombia.com