Hola, vi su artículo anterior sobre el algoritmo RSA de JAVA en Internet. Me gustaría preguntarle cómo una matriz BYTE se convierte en una RSAPublicKey. Gracias.
//Convierte la matriz de bytes en RSAPublicKey
public RSAPublicKey bytes2PK(byte[] buf) {
buf=Base64.decode(buf); p> p>
tamaño del byte=buf[0];
tamaño del byte2=buf[1];
byte[] b1 = nuevo byte[tamaño]; p>
System.arraycopy(buf,2,b1,0,b1.length);
byte[] b2 = nuevo byte[tamaño2];
System.arraycopy (buf ,b1.length+2,b2,0,b2.length);
BigInteger B1 = nuevo BigInteger(b1);
BigInteger B2 = nuevo BigInteger(b2);
p>RSAPublicKeySpec spec = new RSAPublicKeySpec(B1, B2);// Estos dos enteros grandes se almacenan
KeyFactory keyFactory;
PublicKey pk = null;
prueba {
keyFactory = KeyFactory.getInstance("RSA");
pk = keyFactory.generatePublic(spec);
} catch (Excepción e) {
e.printStackTrace();
}
return (RSAPublicKey)pk;
}
p>
Los datos contenidos en la clave pública son en realidad módulo y publicExponent. Todo se puede expresar como matrices de bytes. Para facilitar la transmisión de red, uní dos matrices de bytes. En realidad, es más fácil entender almacenarlos por separado.