Saltar al contenido

Cómo validar un público y privado key par en Java

Tatiana, parte de este equipo de trabajo, nos ha hecho el favor de crear este tutorial ya que conoce perfectamente el tema.

Solución:

Puede verificar si un key emparejar coincidencias por

  • creando un desafío (secuencia aleatoria de bytes de longitud suficiente)
  • firma el reto con el privado key
  • verificando la firma usando el público key

Esto le da una confianza suficientemente alta (casi certeza) de que un key par coincide si la verificación de la firma es correcta, y una certeza absoluta de que un key el par no coincide de otra manera.

Código de ejemplo:

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(2048);

KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();

// create a challenge
byte[] challenge = new byte[10000];
ThreadLocalRandom.current().nextBytes(challenge);

// sign using the private key
Signature sig = Signature.getInstance("SHA256withRSA");
sig.initSign(privateKey);
sig.update(challenge);
byte[] signature = sig.sign();

// verify signature using the public key
sig.initVerify(publicKey);
sig.update(challenge);

boolean keyPairMatches = sig.verify(signature);

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *