powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / RC4 проблема.
2 сообщений из 2, страница 1 из 1
RC4 проблема.
    #38428243
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Пытаюсь перевести реализацию алгоритма RC4 с C# на Java, но ничего не получается. В лоб просто заменил Length на lenght. Ошибок вроде нет, но данные зашифрованные программой на C# не расшифровываются на Java и наоборот. Помогите пожалуйста. Спасибо!

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
 public class RC4
    {
        private byte[] S = new byte[256];

        private int i = 0;
        private int j = 0;

        //просто для удобства обмена
        private void swap(byte[] array, int ind1, int ind2)
        {
            byte temp = array[ind1];
            array[ind1] = array[ind2];
            array[ind2] = temp;
        }

        //инициализация, алгоритм ключевого расписания
        public void init(byte[] key)
        {
            for (i = 0; i < 256; i++)
            {
                S[i] = (byte)i;
            }

            j = 0;
            for (i = 0; i < 256; i++)
            {
                j = (j + S[i] + key[i % key.Length]) % 256;
                swap(S, i, j);
            }
            i = j = 0;
        }

        //генератор псевдослучайной последовательности
        public byte kword()
        {
            i = (i + 1) % 256;
            j = (j + S[i]) % 256;
            swap(S, i, j);
            byte K = S[(S[i] + S[j]) % 256];
            return K;
        }

        //функция шифрования/расшифрования
        public byte[] code(byte[] data)
        {
            byte[] res = new byte[data.Length];

            for (int i = 0; i < data.Length; i++)
            {
                res[i] = (byte)(data[i] ^ kword());
            }

            return res;
        }
    }
...
Рейтинг: 0 / 0
RC4 проблема.
    #38428252
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скоре всего дело в том что byte в С# и в Java это не одно и тоже. Читайте описание к этим типам.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / RC4 проблема.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]