當前位置:編程學習大全網 - 網站源碼 - 妳好,我看到了妳以前在網上的關於JAVA的RSA算法,我想問下,BYTE數組如何變成RSAPublicKey的,謝謝。

妳好,我看到了妳以前在網上的關於JAVA的RSA算法,我想問下,BYTE數組如何變成RSAPublicKey的,謝謝。

//將byte數組變成RSAPublicKey

public RSAPublicKey bytes2PK(byte[] buf) {

buf=Base64.decode(buf);

byte size=buf[0];

 byte size2=buf[1];

byte[] b1 = new byte[size];

 System.arraycopy(buf,2,b1,0,b1.length);

 byte[] b2 = new byte[size2];

System.arraycopy(buf,b1.length+2,b2,0,b2.length);

BigInteger B1 = new BigInteger(b1);

 BigInteger B2 = new BigInteger(b2);

 RSAPublicKeySpec spec = new RSAPublicKeySpec(B1, B2);//存儲的就是這兩個大整形數

KeyFactory keyFactory;

PublicKey pk = null;

try {

keyFactory = KeyFactory.getInstance("RSA");

pk = keyFactory.generatePublic(spec);

 } catch (Exception e) {

e.printStackTrace();

}

return (RSAPublicKey)pk;

}

公鑰所包含的數據,實際上就是modulus、publicExponent這兩個。都可以用byte數組的方式表示。我這邊為了網絡傳輸方便,將兩個byte數組拼接在了壹起。實際上分開存儲更容易理解。

  • 上一篇:開端仿的是哪部電影
  • 下一篇:商城輕工業園區還有哪些廠
  • copyright 2024編程學習大全網