Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> криптография 
V
    Опции темы
can4ec
Дата 30.11.2007, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 25.4.2006

Репутация: 1
Всего: 1



Здравствуйте!!! Вот это мой  тестовый пример. Я  зашифровываю данные , а потом сразу их пытаюсь расшифровываю, но результат не утешительный.

Код

 //шифрую
            KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
            keyGenerator.init(new SecureRandom());
            SecretKey key = keyGenerator.generateKey();
            System.out.println(key);
            String data = "abc";
            Cipher cipher = Cipher.getInstance("DES");

            cipher.init(Cipher.ENCRYPT_MODE, key);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            CipherOutputStream cos = new CipherOutputStream(new ObjectOutputStream(bos), cipher);
            cos.write(data.getBytes());
            byte[] a = data.getBytes();
            byte[] s = bos.toByteArray();
            System.out.println(a.length);
            System.out.println(s.length);
            cos.close();
            bos.close();

            //расшифвровываю
            cipher.init(Cipher.DECRYPT_MODE, key);
            ByteArrayInputStream bis = new ByteArrayInputStream(s);
            CipherInputStream cis = new CipherInputStream(new ObjectInputStream(bis), cipher);
            byte[] result = new byte[bos.toByteArray().length];
            cis.read(result);
            System.out.println(result.length);
            System.out.println(new String(result));


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

Это сообщение отредактировал(а) can4ec - 30.11.2007, 02:22
PM MAIL   Вверх
jer1
  Дата 30.11.2007, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.1.2005
Где: Харьков Украина

Репутация: 4
Всего: 5



после 
Код
cos.write(data.getBytes());
 требуется 
Код
   cos.close();
 (https://java.sun.com/j2se/1.4.2/docs/api/javax/crypto/CipherOutputStream.html#close())


вместо
Код

        //расшифвровываю
  ...
          byte[] result = new byte[bos.toByteArray().length];
  ...

Код

         byte[] result = new byte[a.length]; 

--------------------
:w!q
PM MAIL   Вверх
can4ec
Дата 30.11.2007, 04:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 25.4.2006

Репутация: 1
Всего: 1



jer1:Спасибо, действительно я байты шифрованные забираю раньше чем закрыл поток.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0835 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.