0

Java keygenerator を使用してパブリックを生成しました。

Sun RSA public key, 1024 bits modulus: 106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607 public exponent: 65537

このキーをクライアント側から(コピー、貼り付けを介して)送信し、文字列とまったく同じものを受け取りました。それから私はそれを再構築しようとしました:

byte [] bytes = publicKey.getBytes("UTF-8");
Key key = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));

次に、関数から戻ります。Invalid Key ExceptionKey を形成する 2 行目から取得しています。

何か案は?

4

1 に答える 1

3

RSAPublicKeySpecを使用する必要があります

String modulus="106394877608018766537720801416655991345106535990850729605963854419450103716730599362154190537257597233014065015311499176359112816419965961469419756050290964343366687334245741905264407605904082573446954295309549250335299907317631410981650257400135070254491184426528002396792285738067623733919575203674519111607";
    RSAPublicKeySpec spec = new RSAPublicKeySpec(new BigInteger(modulus),BigInteger.valueOf(65537));

    Key key = KeyFactory.getInstance("RSA").generatePublic(spec);
于 2012-08-14T13:39:47.307 に答える