Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 13.09.2012, 14:22
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 1  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Question Как сделать правильный перевод String в ByteArray

Здравствуйте! Столкнулся с одной проблемкой.
Легенда:
Есть криптографическая библиотека http://code.google.com/p/as3crypto/ меня интересует конкретно "aes-128-ecb" шифрование.
Вот кусочек кода как оно работает:
Код AS3:
var testStr:String = "Meet me at 11 o clock behind the monument.";
var keyStr:String = "thisisaverysecre";//somerandomstring
var strBytes:ByteArray = new ByteArray();
strBytes.writeUTFBytes(testStr);
var keyBytes:ByteArray = new ByteArray();
keyBytes.writeUTFBytes(keyStr);
var mode:ICipher = Crypto.getCipher("aes-128-ecb", keyBytes);
mode.encrypt(strBytes);
var encoded:String = Base64.encode(strBytes);
trace(encoded);//В отпут выходит вот это: "1X0ceapxfyHFztoZ34dmzp7up0XnRaOt/IvCyAsuGheyq0W21NuTyoY7WaZCs4xE"
trace(strBytes.length);//В оутпут выходит число 48
mode.decrypt(strBytes);
trace(strBytes);
Теперь представим гипотетическую ситуацию, когда с сервера приходит строка кодированная в Base64. А мы хотим её обработать. Для чистоты эксперимента возьмём эту строку "1X0ceapxfyHFztoZ34dmzp7up0XnRaOt/IvCyAsuGheyq0W21NuTyoY7WaZCs4xE".
Код AS3:
var decoded:ByteArray = Base64.decode("1X0ceapxfyHFztoZ34dmzp7up0XnRaOt/IvCyAsuGhcGaXGSndGJnFbNxIxTrFym");
var testStr:String = decoded.toString();
var keyStr:String = "thisisaverysecre";
var strBytes:ByteArray = new ByteArray();
strBytes.writeUTFBytes(testStr);
var keyBytes:ByteArray = new ByteArray();
keyBytes.writeUTFBytes(keyStr);
var mode:ICipher = Crypto.getCipher("aes-128-ecb", keyBytes);
trace(strBytes.length);//В оутпут выводит: 68 
mode.decrypt(strBytes);//Здесь код крашится
trace(strBytes);
Это грустно, так как 68 и 48 это разные числа
Похоже что здесь дело в том, как мы пишем строку в ByteArray.
Если попробовать такой способ:
Код AS3:
strBytes.writeUTF(testStr);
trace(strBytes.length);//В оутпут выводит: 70
Таким образом становится понятно, что крашится скрипт потому, что не удаётся воссоздать оригинальный ByteArray.
Вопросы:
Возможно существуют какие-то способы передачи ByteArray от php сервера? И нужно пользоваться именно ими? Или возможно надо как то по другому воссоздавать ByteArray, пользуясь другими методами? Подскажите пожалуйста, как действовать в этой ситуации. Уже не первый день думаю над этим.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.


Последний раз редактировалось AzagThoth; 13.09.2012 в 15:17.
Создать новую тему   Часовой пояс GMT +4, время: 00:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
AS3 , bytearray

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.