Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для alevtinalina
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 19

Не могу найти и исправить ошибку

25.05.2014, 16:30. Показов 649. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import java.math.BigInteger;
import java.security.*;
import java.io.File;
import java.util.Scanner;
import java.io.*;
 
import javax.crypto.Cipher;
 
import org.bouncycastle.*;
import org.bouncycastle.util.encoders.Hex;
 
import javax.crypto.*;
 
import org.bouncycastle.jce.provider.BouncyCastleProvider;
 
class qwe {
 
        public static SecretKey generateSymmetricKey(String algo) throws NoSuchAlgorithmException{
                KeyGenerator kg = KeyGenerator.getInstance(algo);
                return kg.generateKey();
        }
       
        public static byte[] simpleSymmetricEncrype (Cipher cipher, SecretKey key, byte[] inputMas) throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException{
                cipher.init(Cipher.ENCRYPT_MODE, key);
                return cipher.doFinal(inputMas);
        }
       
        public static byte[] simpleSymmetricDecrypt (Cipher cipher, SecretKey key, byte[] encryptMas) throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException{
                cipher.init(Cipher.DECRYPT_MODE, key);
                return cipher.doFinal(encryptMas);
        }
       
       
        public static void main(String[] args) throws Exception{
                Security.addProvider(new BouncyCastleProvider());
                FileInputStream inFile = new FileInputStream("test.txt");
        byte[] str2 = new byte[inFile.available()];
        inFile.read(str2);
        String sInput = new String(str2);
        inFile.close();
               
        //хеширование MD5
        MessageDigest hash = MessageDigest.getInstance("SHA256");
        byte[] digest = hash.digest(sInput.getBytes());
        BigInteger biHash3411Out = new BigInteger(digest);
        String hash1 = biHash3411Out.toString(16);
        //System.out.println(hash1);
       
 
        //подпись Эль-Гамаля      
        Cipher cipher = Cipher.getInstance("ElGamal", "BC");
                SecureRandom random = new SecureRandom();
                KeyPairGenerator generator = KeyPairGenerator.getInstance("ElGamal", "BC");
               
                generator.initialize(256, random);
               
                KeyPair pair = generator.generateKeyPair();
                Key pubKey = pair.getPublic();
                Key privKey = pair.getPrivate();
               
               
                cipher.init(Cipher.ENCRYPT_MODE, pubKey, random);
                byte[] cipherText = cipher.doFinal ( hash1.getBytes() );
                String hashP = new String (Hex.encode(cipherText));
 
               
               
               
               
                //шифрование данные + подпись
                String inputP = sInput + hashP;
               
                cipher = Cipher.getInstance("AES", "BC");
                SecretKey key = generateSymmetricKey("AES");
       
               
                byte[] encInputP = simpleSymmetricEncrype(cipher, key, inputP.getBytes());
               
 
                //шифрование ключа
               
                cipher = Cipher.getInstance("AES", "BC");
                SecretKey B0 = generateSymmetricKey("AES");
 
                byte encKey[] = simpleSymmetricEncrype(cipher, B0, key.toString().getBytes());
               
               
 
                //приёмная сторона
               
                //расшифровка ключа
 
                cipher = Cipher.getInstance("DES", "BC");
               
                byte decKey[] = simpleSymmetricDecrypt(cipher, B0, encKey);
                byte[] decInputP = simpleSymmetricDecrypt(cipher, key, encInputP);
               
                String dec = (new String (decInputP));
                String decPodpis = dec.substring(dec.length()-256, dec.length());
                String decData = dec.substring(0, dec.length()-256);
               
               
               
                cipher = Cipher.getInstance("ElGamal", "BC");
                cipher.init(Cipher.DECRYPT_MODE, privKey);
                byte[] plainText = cipher.doFinal(cipherText);
                System.out.println(new String(plainText));
               
 
       
                hash = MessageDigest.getInstance("SHA256");
        digest = hash.digest(decData.getBytes());
        biHash3411Out = new BigInteger(digest);
        String decHash1 = biHash3411Out.toString(16);
       
        System.out.println(decHash1);
               
        FileOutputStream outFile = new FileOutputStream ("test2.txt");
        byte[] pere =  decHash1.getBytes();
        outFile.write(pere);
         String sOutput = new String(decHash1);
       outFile.close();
       System.out.println(new String(pere));
        }
 
}
Во входном файле находится любое текстовое сообщение. Пожалуйста помогите найти ошибку в коде

Добавлено через 2 часа 41 минуту
Ошибка заключает в том, что при использовании DES алгоритма шифрования ключ должен быть 8 байт.

Не могу найти в каком месте.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2014, 16:30
Ответы с готовыми решениями:

Не могу найти\исправить ошибку
Делаю телефонный справочник (думаю всех у универах заставляют :D) Ну вот, я вроде сделал, но не могу понять где ошибка, точней даже не...

Не могу найти и исправить ошибку в программе
Считываю из тхт файла строки, в каждой строки 7 значений разделенных ";" считываю в stringlist далее пытаюсь раскидать в 7 массивов и...

Не могу найти и исправить ошибку в коде
#include <iostream> #include <locale.h> using namespace std; double masA={0}; long funcP(int x) { long double...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2014, 16:30
Помогаю со студенческими работами здесь

Может кто исправить ошибку, не могу найти
program abc; var n,c,d,p,e,a,i,j,k,o,m,t,z: longint; function nc(i,j,k,n,z: integer): integer; begin i:=1; for i:=2 to n do ...

Не могу найти ошибку в программе. Что исправить?
Программа проходит все мои тесты, однако проверку на сайте не проходит, выкидывает следующее сообщение: Ошибка времени выполнения ...

Найти количество чисел в массиве кратным 3 и НЕкратным 5 (не могу исправить ошибку)
я сделал что если mod 3 = 0 тогда x:=x+1 то есть будет определять количество, но если встретится в массиве 0 он также прибавит 1 т.к. 0 mod...

Не могу исправить ошибку (даны два вектора, найти единичные векторы в направлении исходных)
Program vector; uses crt; type Vec=record x:integer; y:integer; z:integer; end; var a,b:Vec;

Структура: Не могу понять, почему выдает ошибку и как собственно эту ошибку можно исправить?
Привет,не могу понять почему ошибку выдает и как сбстно эту ошибку можно исправить? #include <stdio.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru