如何将公钥phpseclib传递给Java?

如何将公钥phpseclib传递给Java?,java,android,rsa,phpseclib,Java,Android,Rsa,Phpseclib,我想将使用Crypt\u RSA(phpseclib)生成的公钥传递给Java 一种方法是将PEM公钥传递给Java。下一步是从Java中的PEM文件中获取公钥。一种方法是删除----开始RSA密钥---和----结束RSA密钥---但是有更干净的方法吗? 更新 这实际上行不通!据我所知,在Android或Java中构造RSAPublicKeySpec的唯一方法是通过模和指数。当然,我可以尝试解析相同的PEM公钥来获取它们,但我不认为这是一种简单/明智的方法 我正在考虑获取公钥的模和指数,然后将

我想将使用
Crypt\u RSA
(phpseclib)生成的公钥传递给Java

一种方法是将PEM公钥传递给Java。下一步是从Java中的PEM文件中获取公钥。一种方法是删除
----开始RSA密钥---
----结束RSA密钥---
但是有更干净的方法吗?
更新
这实际上行不通!据我所知,在Android或Java中构造RSAPublicKeySpec的唯一方法是通过模和指数。当然,我可以尝试解析相同的PEM公钥来获取它们,但我不认为这是一种简单/明智的方法

我正在考虑获取公钥的模和指数,然后将它们传递给Java。然后,Java将根据模和指数重构公钥。但是,如何使用
Crypt\u RSA
获得模和指数?

您可以这样做:

$publickey = $rsa->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_RAW);
echo $publickey['e'];
echo "\r\n";
echo $publickey['n'];
之后

$rsa = new Crypt_RSA();
$rsa->loadKey($privateKey);
$rsa->loadKey($rsa->getPublicKey());
我们可以通过以下方式获得模量和指数:

$pubMod = $rsa->modulus->toBytes();// this gives base 256 encoded string, toString() gives base 10 etc.
$pubExp = $rsa->exponent->toBytes();
toBytes()
toString()
等方法可以在
Math\u biginger
类中找到


现在对我来说,对模数和公共指数进行base64编码并将它们连接成一个字符串并发送到我的Java应用程序变得很容易了

当我不得不这样做时,我只需要去掉页眉和页脚并解码base64编码。它工作得非常好。嗨@WeaponsGrade,在base64解码后,你得到了什么,例如模数、指数和其他一些值?生成的PEM公钥也由多行组成,这些行需要Java方面的连接工作