把Java產生的RSA公開金鑰、私密金鑰轉換成.NET使用的XML格式

來源:互聯網
上載者:User

標籤:

 1  private static String getRSAPrivateKeyAsNetFormat(byte[] encodedPrivkey) { 2         try { 3             StringBuffer buff = new StringBuffer(1024); 4  5             PKCS8EncodedKeySpec pvkKeySpec = new PKCS8EncodedKeySpec( 6                     encodedPrivkey); 7             KeyFactory keyFactory = KeyFactory.getInstance("RSA"); 8             RSAPrivateCrtKey pvkKey = (RSAPrivateCrtKey) keyFactory 9                     .generatePrivate(pvkKeySpec);10 11             buff.append("<RSAKeyValue>");12             buff.append("<Modulus>"13                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getModulus().toByteArray()))14                     + "</Modulus>");15 16             buff.append("<Exponent>"17                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPublicExponent()18                     .toByteArray())) + "</Exponent>");19 20             buff.append("<P>"21                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeP().toByteArray()))22                     + "</P>");23 24             buff.append("<Q>"25                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeQ().toByteArray()))26                     + "</Q>");27 28             buff.append("<DP>"29                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeExponentP()30                     .toByteArray())) + "</DP>");31 32             buff.append("<DQ>"33                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrimeExponentQ()34                     .toByteArray())) + "</DQ>");35 36             buff.append("<InverseQ>"37                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getCrtCoefficient()38                     .toByteArray())) + "</InverseQ>");39 40             buff.append("<D>"41                     + CodeUtils.base64Encode(removeMSZero(pvkKey.getPrivateExponent()42                     .toByteArray())) + "</D>");43             buff.append("</RSAKeyValue>");44 45             return buff.toString().replaceAll("[ \t\n\r]", "");46         } catch (Exception e) {47             System.err.println(e);48             return null;49         }50     }51 52     private static String getRSAPublicKeyAsNetFormat(byte[] encodedPublicKey) {53         try {54 55             KeyFactory keyFactory = KeyFactory.getInstance("RSA");56             RSAPublicKey pukKey = (RSAPublicKey) keyFactory.generatePublic(new X509EncodedKeySpec(encodedPublicKey));57 58             StringBuffer buff = new StringBuffer(1024);59             buff.append("<RSAKeyValue>");60             buff.append("<Modulus>"61                     + CodeUtils.base64Encode(removeMSZero(pukKey.getModulus().toByteArray()))62                     + "</Modulus>");63             buff.append("<Exponent>"64                     + CodeUtils.base64Encode(removeMSZero(pukKey.getPublicExponent().toByteArray())) + "</Exponent>");65             buff.append("</RSAKeyValue>");66             return buff.toString().replaceAll("[ \t\n\r]", "");67         } catch (Exception e) {68             System.err.println(e);69             return null;70         }71     }

 

把Java產生的RSA公開金鑰、私密金鑰轉換成.NET使用的XML格式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.