Показать сообщение отдельно
Старый 01.01.2013, 01:22   #29
Новичок
 
Аватар для zAvaTARz
 
Регистрация: 06.02.2011
Сообщений: 17
Сказал Спасибо: 2
Имеет 7 спасибок в 7 сообщенях
zAvaTARz пока неопределено
По умолчанию

Может это из-за инцилизации неверной?

Вот скрипт
Код:
		//Стартовый ключ инцилизации
		bf_key = HexToStr("6B60CB5B82CE90B1CC2B6C556C6C6C6C");
		//Инцилизируем ключ
		BlowFish.Init(bf_key) ;

	//Хекс преобразуем в байты, а байты это строки
	public string HexToStr (string s) {
		int i;
		
		result = "" ;
		
		Debug.Log("hex " + s + " " + s.Length) ;
		
		//for i:=1 to (Length(s) div 2) do begin
		for (i=0; i < (s.Length/2); i++) {
			//Преобразуем символы
			result = result + Convert.ToChar(Convert.ToInt32("" + s[i*2] + s[(i*2)+1],16)) ;
		}

		//Debug.Log("MyFunc : " + result);
	i = 0 ;
	return result;

	}
Код:
        public static void Init(string Key1)
        {
            long i, j;
            long data, datal, datar;
            long Size;
            byte[] Key = new byte[Key1.Length];
            
            //Key = BitConverter.GetBytes(Key1);//(byte[])Funcs.DeepClone(Key1);
			
			//for i:=0 to Size-1 do key[i]:=Ord(key1[i+1]);
			
            Size = Key1.Length;
			
            for (int _i = 0; _i < Size; _i++)
            {
				Key[_i] = Convert.ToByte(Key1[_i]) ;
			}

            for (i = 0; i < 18; i++)
                PArray[i] = BlowFishConsts.bf_P[i];
        
            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 256; j++)
                {
                    SBoxes[i, j] = BlowFishConsts.bf_S[i, j];
                }
            }

            j = 0;
            for (i = 0; i < 18; i++)
            {
                data = ((Key[j] & 0xFF) << 24) | ((Key[(j+1) % Size] & 0xFF) << 16) | ((Key[(j+2) % Size] & 0xFF) << 8) | (Key[(j+3) % Size] & 0xFF);
                PArray[i] = PArray[i] ^ data;
                j = (j + 4) % Size;
            }

            datal = 0;
            datar = 0;
            for (i = 0; i < 9; i++)
            {
                Blowfish_encipher(ref datal, ref datar);
                PArray[i*2] = datal;
                PArray[i*2 + 1] = datar;
            }

            for (i = 0; i < 4; i++)
                for (j = 0; j < 128; j++)
                {
                    Blowfish_encipher(ref datal, ref datar);
                    SBoxes[i, j*2] = datal;
                    SBoxes[i, j*2 + 1] = datar;
                }
				
			
        }
Не знаю что может такое и быть, не знал что с конечной шифрайцией будут такие проблемы...

Пакет верный, почему не шифрует так как надо, есть у кого скрипты на C#?
zAvaTARz вне форума   Ответить с цитированием