Генерируйте пару ключей RSA и закодируйте частный строкой

Ответ 2008 года "Официальным" API Java для этого является теперь JAXB - API Java для Привязки XML. См. Учебное руководство Oracle. Ссылочная реализация живет в http://jaxb.java.net/

Обновление 2018 года Примечание, что EE Java и Модули CORBA удерживаются от использования в SE в JDK9 и быть удаленными из SE в JDK11. Поэтому для использования JAXB это должно будет или быть в существующей среде класса предприятия, связанной, например, сервером приложений, или необходимо будет ввести его вручную.

27
задан Artjom B. 11 November 2014 в 17:39
поделиться

1 ответ

Для вывода в виде шестнадцатеричной строки

import java.security.*;
public class Test {
    public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException {
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(512);
        byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded();
        StringBuffer retString = new StringBuffer();
        for (int i = 0; i < publicKey.length; ++i) {
            retString.append(Integer.toHexString(0x0100 + (publicKey[i] & 0x00FF)).substring(1));
        }
        System.out.println(retString);
    }
}

Для вывода в виде байтовых значений

import java.security.*;
public class Test {
    public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException {
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(512);
        byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded();
        StringBuffer retString = new StringBuffer();
        retString.append("[");
        for (int i = 0; i < publicKey.length; ++i) {
            retString.append(publicKey[i]);
            retString.append(", ");
        }
        retString = retString.delete(retString.length()-2,retString.length());
        retString.append("]");
        System.out.println(retString); //e.g. [48, 92, 48, .... , 0, 1]
    }
}
44
ответ дан 28 November 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: