Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 20:08   #1
ymerlа91
 
Регистрация: 16.12.2013
Сообщений: 3
Сообщение цифровая подпись dsa

помогите найти ошибки(((
Код:
//GSig.java
/* Генерация DSA-подписи */

import java.io.*;
import java.security.*;
class GSig 
{
 //сохранение байтового массива в файл
public static void saveToFile (byte[] info, 
String filename)
{
try
{
FileOutputStream fos = new FileOutputStream
(filename);
fos.write(info);
fos.close();
}
catch (Exception e) 
{
System.err.println(“Caught exception “ + e.toString());
}
}// saveToFile ()

public static void main(String args[]) 
{
try
{
/* Генерация ключей */
KeyPairGenerator keyGen = 
KeyPairGenerator.getInstance(“DSA”, “SUN”);
SecureRandom random = 
SecureRandom.getInstance(“SHA1PRNG”, “SUN”);
 keyGen.initialize(1024, random);
 KeyPair pair = keyGen.generateKeyPair();
PrivateKey priv = pair.getPrivate();
PublicKey pub = pair.getPublic();
 /* Создание объекта класса Signature */
 Signature dsa = 
Signature.getInstance(“SHA1withDSA”, “SUN”); 
/* Инициализация частным ключом */
dsa.initSign(priv);
 /* Чтение данных из файла “data”. Вызов метода update() */
 FileInputStream fis = new FileInputStream(“data”);
BufferedInputStream bufin = 
new BufferedInputStream(fis);
byte[] buffer = new byte[1024];
int len;
while (bufin.available() != 0) 
{
len = bufin.read(buffer);
dsa.update(buffer, 0, len);
}
bufin.close();
 /* Генерация подписи */
byte[] realSig = dsa.sign();
 /* Сохранение подписи в файл “signature” */
saveToFile (realSig,”signature”);
 /* Сохранение открытого ключа в файл “pubkey” */
byte[] key = pub.getEncoded();
saveToFile (key,”pubkey”);
} 
 catch (Exception e) 
{
System.err.println(“Caught exception “ + e.toString());
}
 }// main()
}// class GSig
Код:
/* Верификация DSA-подписи */
import java.io.*;
import java.security.*;
import java.security.spec.*;
class VSig 
{
 //чтение из файла в байтовый массив
public static byte[] readFromFile (String fileName)
{
byte[] info;
try
{
FileInputStream fis = 
new FileInputStream(fileName);
info = new byte[fis.available()];
fis.read(info);
fis.close();
}
catch (Exception e)
{
System.err.println(“Caught exception “ + e.toString());
info = new byte[0];
}
return(info);
}// copyFromFile ()
 public static void main(String args[]) 
{
try
{
/* Получение encoded public key из файла “pubkey” */
byte[] encKey = readFromFile(“pubkey”);

/* Создание спецификации ключа */
X509EncodedKeySpec pubKeySpec = 
new X509EncodedKeySpec(encKey);
 /* Создание объектов Лунафсещкн и ЗгидшсЛун*/
KeyFactory keyFactory = KeyFactory.getInstance (“DSA”, “SUN”);
PublicKey pubKey = keyFactory.generatePublic
(pubKeySpec);
 /* Чтение подписи из файла “signature” */
byte[] sigToVerify = readFromFile(“signature”);
 /* Создание объекта класса Signature и инициализация с помощью открытого ключа    */
Signature sig = Signature.getInstance (“SHA1withDSA”, “SUN”);
sig.initVerify(pubKey);
 /* Чтение данных из файла “data” и вызов метода update() */
FileInputStream datafis = new FileInputStream (“data”);
BufferedInputStream bufin = 
new BufferedInputStream(datafis);
byte[] buffer = new byte[1024];
int len;
while (bufin.available() != 0) 
{
len = bufin.read(buffer);
sig.update(buffer, 0, len);
}
bufin.close();
 /* Верификация */
boolean verifies = sig.verify(sigToVerify);
 System.out.println(“Signature verifies: “ + verifies);
}
 catch (Exception e) 
{
System.err.println(“Caught exception “ + e.toString());
}
}// main() 
}// class VSig
ymerlа91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цифровая подпись Nonamelol Windows 2 20.11.2013 14:27
Цифровая подпись Antifreem Безопасность, Шифрование 4 13.04.2013 21:19
Цифровая подпись JonMagon Помощь студентам 3 22.07.2011 17:24
Цифровая подпись god110 Общие вопросы Delphi 20 06.07.2010 15:18
цифровая подпись. De-p Microsoft Office Word 0 10.06.2010 17:15