Разработай программу, которая будет введенные

Разработай программу, которая будет введенные пользователем данные и возвращать открытый и закрый ключи
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: Java
Создано: 16.03.2025 07:05

Разработай программу, которая будет введенные пользователем данные и возвращать открытый и закрый ключи

Конечно! Вот пример программы на языке Java, которая генерирует пару открытого и закрытого ключей с использованием библиотеки java.security. Программа будет запрашивать у пользователя количество бит для ключа, а затем будет выводить открытый и закрытый ключи в формате Base64.

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.Base64;
import java.util.Scanner;

public class KeyPairGeneratorExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите количество бит для ключа (например, 2048): ");
        int keySize = scanner.nextInt();

        try {
            // Генерация пары ключей
            KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
            keyPairGenerator.initialize(keySize);
            KeyPair keyPair = keyPairGenerator.generateKeyPair();
            
            // Получение открытого и закрытого ключей
            PublicKey publicKey = keyPair.getPublic();
            PrivateKey privateKey = keyPair.getPrivate();

            // Кодирование ключей в Base64
            String publicKeyBase64 = Base64.getEncoder().encodeToString(publicKey.getEncoded());
            String privateKeyBase64 = Base64.getEncoder().encodeToString(privateKey.getEncoded());

            // Вывод ключей
            System.out.println("Открытый ключ:");
            System.out.println(publicKeyBase64);
            System.out.println("\nЗакрытый ключ:");
            System.out.println(privateKeyBase64);
        } catch (NoSuchAlgorithmException e) {
            System.err.println("Ошибка генерации ключей: " + e.getMessage());
        } finally {
            scanner.close();
        }
    }
}

Описание:

  • Программа использует класс KeyPairGenerator для генерации пары ключей RSA.
  • Пользователь вводит размер ключа в битах через консоль.
  • Ключи затем кодируются в формат Base64 для удобного отображения.
  • Открытый и закрытый ключи выводятся в консоль.

Примечания:

  1. Перед тем как запускать этот код, убедитесь, что у вас установлена JDK (Java Development Kit).
  2. Вы можете компилировать и запускать код в любой среде разработки Java или через командную строку.