Java tamaños de clave RSA

Peter Y. :

Estoy tratando de aprender a firmar los mensajes utilizando el algoritmo RSA con SHA256 en Java. Cuando me genera un par de claves de 2048 bits, he encontrado que tanto el público y la clave privada eran 294 bytes. Aquí está mi código para encontrar el tamaño de las claves:

import java.security.*;

public class RSATesting
{    
    public static void main(String[] args) throws Exception
    {
        KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
        generator.initialize(2048, new SecureRandom());
        KeyPair pair = generator.generateKeyPair();

        byte[] publicKeyBytes=pair.getPublic().getEncoded();
        System.out.println(publicKeyBytes.length);
        byte[] privateKeyBytes=pair.getPublic().getEncoded();
        System.out.println(privateKeyBytes.length);
    }
}

¿Por qué son las claves no 256 bytes?

Gracias

Jakob:

claves RSA no son como las claves AES.

Claves AES son algunos bytes aleatorios. Claves RSA son números. El módulo RSA ( N) define la longitud.

Su clave es 294 bytes de longitud, debido a getEncoded();. Devuelve una clave con formato y no la verdadera longitud.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=364039&siteId=1
Recomendado
Clasificación