Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   побитовые операции со строками (http://www.flasher.ru/forum/showthread.php?t=105688)

Ноябрь 21.12.2007 04:20

побитовые операции со строками
 
У меня есть задание по криптографии (кодированию).
В криптографии используют побитовые операции (XOR в основном). Так вот, у меня есть строка, как мне ее разложить на байты, чтобы логически сложить с другой строкой?

etc 21.12.2007 10:34

Один символ может занимать два или более байт. Как будет происходит сложение в этом случае?

BlooDHounD 21.12.2007 11:44

Код:

var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes( s );
for (var i:uint = 0; i<bytes.length; i++) {
trace(bytes[i]);
}


K.A.T.A.F.A.L.K.E.R 21.12.2007 12:28

а не получится при таком подходе ерунда? Когда один трехбайтовый юникодовский символ будет путаться с последовательностью трех однобайтовых? В смысле, зачем на байты разлагать? Имхо, лучше просто использовать charCodeAt(). Да, иногда это больше чем один байт. И что? Кто-то мешает делать XOR с более чем восемью битами?

BlooDHounD 21.12.2007 13:21

ну если надо зашифровать информацию, то на мой взгляд должно быть обсолютно пофигу строка это или нет. поэтому кодируют обычно побайтово а не по символьно.

Ноябрь 21.12.2007 22:41

Думаю не запутаюсь. Формат ключа вообще не важен. Но мне не нравится, что кирилица кодируется максимум 12 битами, а я в данном случае буду рассматривать их как 2 байта, т.о возникает 25% лишней информации.. хорошо бы было не по байтам информацию получать, а по битам..
как прочитать обратно массив байтов?

BlooDHounD 21.12.2007 22:53

readUTF?

Ноябрь 21.12.2007 23:11

Код:

var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(s);
trace(bytes.readUTF());

Цитата:

Error: Error #2030: End of file was encountered.
at flash.utils::ByteArray/readUTF()
at main::base$iinit()

BlooDHounD 22.12.2007 01:06

position?
ваще чё-нить вроде хелпа пробывали читать?

Ноябрь 22.12.2007 01:39

Пробовал.
ф.. позиция какая-то..
так работает
Код:

bsecret.position=0;
trace(bsecret.readUTFBytes(bsecret.length));

так нет
Код:

bsecret.position=0;
trace(bsecret.readUTF());

а как пустой байт записать?
Код:

bsecret.writeUTFBytes('');
так не пишет


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

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