Реализации алгоритмов/RC4: различия между версиями

Содержимое удалено Содержимое добавлено
м Ivan Shmakov переименовал страницу Программные реализации RC4 в Реализации алгоритмов/RC4: Согласно [[Викиучебник:К переименованию/Ноябрь 2014…
Использован {{BookCat}}; пробелы; →‎К переименованию: снят шаблон после переименования.
Строка 1:
{{К переименованию |2014-11-21|Реализации алгоритмов/RC4}}
 
== На языке [[w:C (язык программирования)|C]] ==
 
Строка 6 ⟶ 4 :
unsigned char S[ 256 ];
unsigned int i, j;
 
/* ключевое расписание */
void rc4_init( unsigned const char* key, unsigned int key_length )
Строка 14 ⟶ 12 :
for( i = 0; i != 256; ++i )
S[ i ] = i;
 
for( i = j = 0; i != 256; ++i )
{
Строка 22 ⟶ 20 :
S[ j ] = temp;
}
 
i = j = 0;
}
 
/* Вывод одного псевдослучайного байта */
unsigned char rc4_output()
{
unsigned char temp;
 
i = ( i + 1 ) % 256;
j = ( j + S[ i ] ) % 256;
 
temp = S[ j ];
S[ j ] = S[ i ];
S[ i ] = temp;
 
return S[ ( temp + S[ j ] ) % 256 ];
}
Строка 73 ⟶ 71 :
S[i] = (byte)i;
}
 
j = 0;
for (i = 0; i < 256; i++) {
Строка 87 ⟶ 85 :
j = (j + S[i]) % 256;
swap(S, i, j);
byte K = S[(S[i] + S[j]) % 256];
return K;
}
Строка 227 ⟶ 225 :
}
}
 
 
</source>
 
{{BookCat}}
[[Категория:Программирование]]