![]() |
|
||||||||||
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А пустой байт ничего и не представляет из себя.
|
|
|||||
|
стервочка (я мужик)
|
если имеется ввиду нулевой то writeByte(0).
|
|
|||||
|
Всем спасибо за помощь..
Реализация алгоритма Skipjack, который превратит любую ценную информацию в мусор, а затем обратно (если конечно знаешь ключ). 10байтный ключ позволяет сгенерировать 1.20892581961462e+24 вариантов себя. package main{
import flash.display.MovieClip
import flash.utils.ByteArray
public class base extends MovieClip{
public var ssecret:String='Секретный текст';
public var skey:String='very';
public var equ:Array = new Array(
0xA3, 0xD7, 0x09, 0x83, 0xF8, 0x48, 0xF6, 0xF4, 0xB3, 0x21, 0x15, 0x78, 0x99, 0xB1, 0xAF, 0xF9, 0xE7, 0x2D, 0x4D, 0x8A, 0xCE, 0x4C, 0xCA, 0x2E, 0x52, 0x95, 0xD9, 0x1E, 0x4E, 0x38, 0x44, 0x28, 0x0A, 0xDF, 0x02, 0xA0, 0x17, 0xF1, 0x60, 0x68, 0x12, 0xB7, 0x7A, 0xC3, 0xE9, 0xFA, 0x3D, 0x53, 0x96, 0x84, 0x6B, 0xBA, 0xF2, 0x63, 0x9A, 0x19, 0x7C, 0xAE, 0xE5, 0xF5, 0xF7, 0x16, 0x6A, 0xA2, 0x39, 0xB6, 0x7B, 0x0F, 0xC1, 0x93, 0x81, 0x1B, 0xEE, 0xB4, 0x1A, 0xEA, 0xD0, 0x91, 0x2F, 0xB8, 0x55, 0xB9, 0xDA, 0x85, 0x3F, 0x41, 0xBF, 0xE0, 0x5A, 0x58, 0x80, 0x5F, 0x66, 0x0B, 0xD8, 0x90, 0x35, 0xD5, 0xC0, 0xA7, 0x33, 0x06, 0x65, 0x69, 0x45, 0x00, 0x94, 0x56, 0x6D, 0x98, 0x9B, 0x76, 0x97, 0xFC, 0xB2, 0xC2, 0xB0, 0xFE, 0xDB, 0x20, 0xE1, 0xEB, 0xD6, 0xE4, 0xDD, 0x47, 0x4A, 0x1D, 0x42, 0xED, 0x9E, 0x6E, 0x49, 0x3C, 0xCD, 0x43, 0x27, 0xD2, 0x07, 0xD4, 0xDE, 0xC7, 0x67, 0x18, 0x89, 0xCB, 0x30, 0x1F, 0x8D, 0xC6, 0x8F, 0xAA, 0xC8, 0x74, 0xDC, 0xC9, 0x5D, 0x5C, 0x31, 0xA4, 0x70, 0x88, 0x61, 0x2C, 0x9F, 0x0D, 0x2B, 0x87, 0x50, 0x82, 0x54, 0x64, 0x26, 0x7D, 0x03, 0x40, 0x34, 0x4B, 0x1C, 0x73, 0xD1, 0xC4, 0xFD, 0x3B, 0xCC, 0xFB, 0x7F, 0xAB, 0xE6, 0x3E, 0x5B, 0xA5, 0xAD, 0x04, 0x23, 0x9C, 0x14, 0x51, 0x22, 0xF0, 0x29, 0x79, 0x71, 0x7E, 0xFF, 0x8C, 0x0E, 0xE2, 0x0C, 0xEF, 0xBC, 0x72, 0x75, 0x6F, 0x37, 0xA1, 0xEC, 0xD3, 0x8E, 0x62, 0x8B, 0x86, 0x10, 0xE8, 0x08, 0x77, 0x11, 0xBE, 0x92, 0x4F, 0x24, 0xC5, 0x32, 0x36, 0x9D, 0xCF, 0xF3, 0xA6, 0xBB, 0xAC, 0x5E, 0x6C, 0xA9, 0x13, 0x57, 0x25, 0xB5, 0xE3, 0xBD, 0xA8, 0x3A, 0x01, 0x05, 0x59, 0x2A, 0x46);
public function base():void{
//чтение ключа
var t:ByteArray = new ByteArray();
t.writeUTFBytes(skey);
var l:uint=t.length;
var z:int = 10 - l;
for (var i:int = 0;i<z;i++){
t.writeByte(0);
}
var bkey:ByteArray = new ByteArray();
bkey.writeBytes(t,0,10);
//чтение информации
var bsecret:ByteArray = new ByteArray();
bsecret.writeUTFBytes(ssecret);
l = bsecret.length;
z = 8 - (l % 8);
for (i = 0;i<z;i++){
bsecret.writeByte(0);
}
//тест
trace(bsecret);
var c:ByteArray = new ByteArray();
for(i=0;i<l;i+=8){
t=new ByteArray();
t.writeBytes(bsecret,i,8);
c.writeBytes(coding(t,bkey));
}
trace(c);
var d:ByteArray = new ByteArray();
for(i=0;i<l;i+=8){
t=new ByteArray();
t.writeBytes(c,i,8);
d.writeBytes(decoding(t,bkey));
}
trace(d);
}
//Кодирование
public function coding(block:ByteArray,key:ByteArray):ByteArray{
block = A(block,key);
block = B(block,key);
block = A(block,key);
block = B(block,key);
return block;
}
//Декодирование
public function decoding(block:ByteArray,key:ByteArray):ByteArray{
block = unB(block,key);
block = unA(block,key);
block = unB(block,key);
block = unA(block,key);
return block;
}
//Операция G
private function G(word:uint,key:ByteArray,r:uint):uint{
for(var i:uint = 0;i<4;i++){
word^= key[(4*r+i)%10];
word=equ.indexOf(word)
}
return word;
}
//Декодирование G
private function unG(word:uint,key:ByteArray,r:uint):uint{
for(var i:uint = 0;i<4;i++){
word=equ[word]
word^= key[(4*r+3-i)%10];
}
return word;
}
//Кодирование А
private function A(block:ByteArray,key:ByteArray):ByteArray{
var buf:Array = new Array(2);
for(var i:uint=0;i<8;i++){
block[0]=G(block[0],key,i);
buf[0]=block[0];
buf[1]=block[1];
block[0] ^= block[6];
block[1] ^= block[7];
block[0] ^= i;
block[1] ^= i;
block[6]=block[4];
block[7]=block[5];
block[4]=block[2];
block[5]=block[3];
block[2]=buf[0];
block[3]=buf[1];
}
return block;
}
//Декодирование А
private function unA(block:ByteArray,key:ByteArray):ByteArray{
var buf:Array = new Array(2);
for(var i:uint=0;i<8;i++){
buf[0]=block[2];
buf[1]=block[3];
block[2]=block[4];
block[3]=block[5];
block[4]=block[6];
block[5]=block[7];
block[0] ^= 7-i;
block[1] ^= 7-i;
block[6] = block[0] ^ buf[0]
block[7] = block[1] ^ buf[1]
block[0] = unG(buf[0],key,7-i);
block[1] = buf[1];
}
return block;
}
//Кодирование В
private function B(block:ByteArray,key:ByteArray):ByteArray{
var buf:Array = new Array(2);
for(var i:uint=0;i<8;i++){
block[1]=G(block[1],key,i);
buf[0]=block[0];
buf[1]=block[1];
buf[0] ^= i;
buf[1] ^= i;
buf[0] ^= block[2];
buf[1] ^= block[3];
block[2]=block[0];
block[3]=block[1];
block[0]=block[6];
block[1]=block[7];
block[6]=block[4];
block[7]=block[5];
block[4]=buf[0];
block[5]=buf[1];
}
return block;
}
//Декодирование В
private function unB(block:ByteArray,key:ByteArray):ByteArray{
var buf:Array = new Array(2);
for(var i:uint=0;i<8;i++){
buf[0] = block[4];
buf[1] = block[5];
block[4]=block[6];
block[5]=block[7];
block[6] = block[0];
block[7] = block[1];
block[0]=block[2];
block[1]=block[3];
block[1]=unG(block[1],key,7-i);
block[2] ^=7-i;
block[3] ^=7-i;
buf[0] ^= block[2];
buf[1] ^= block[3];
block[2]=buf[0];
block[3]=buf[1];
}
return block;
}
}
}
__________________
Пора бы мне уже умнеть.. Последний раз редактировалось Ноябрь; 24.12.2007 в 03:10. |
|
|||||
|
Возможно ли картинку перевести в байт массив?
__________________
Пора бы мне уже умнеть.. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
ну хорошо, у меня есть BitmapData, а как ее в клип добавить, чтобы видно было?
__________________
Пора бы мне уже умнеть.. |
|
|||||
|
уж тогда http://livedocs.adobe.com/flash/9.0/...ml#setPixels()
хм.. появилась проблема - после записи и чтения значения байт массива немного меняются... типа так 6 148 59 175 6 127 42 170 записал в BitmapData методом setPixels() и тут же оттуда их прочел методом getPixels()
__________________
Пора бы мне уже умнеть.. Последний раз редактировалось Ноябрь; 03.01.2008 в 04:22. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ноябрь, вопрос вышел за рамки этой темы.
Создайте новую. |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|