//将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;
}