将PHP生成的公钥转换为Java公钥
我是Android新手,正在开发基于客户端服务器的应用程序。这里我需要使用RSA算法进行加密/解密
情况是: 1.服务器必须创建私钥/公钥对(PHP)并将公钥发送到客户端(Android应用程序) 2.客户端应使用该公钥加密数据并发送到服务器 3.现在服务器必须使用私钥解密
在PHP中,我使用“PhpSecLib”创建密钥对
这是编码:
服务器。php:
<?PHP
include 'Crypt/RSA.php';
$rsa = new Crypt_RSA();
extract($rsa->createKey(1024));
echo $publickey;
?>
生成的公钥:
MIGFMA0GCSQGSIB3DQEBAQAA4GNADCBICKBGQDLZ4YAO1TOLC6NIJBCTV5IVNW F6MxCeM5+RxY+29AXCPMWHLM9OES3ESIFW6OZRRENDYQWY+kVzCj2bWYnEAyJXs WOPVQT2xSCPPLWZONQGM+DnAYJXEeOfgU5DI63fwdiGv4M2ph1VMMe6684sBZu1 HHJHUHSX2EBBR0/lQIDAQAB
现在在Java中,我成功地收到了这个公钥并存储在一个字符串中
编码:
protected String doInBackground(Void... params)
{
try
{
URL url=new URL("http://10.0.2.2/Samples/Server.php");
URLConnection con=url.openConnection();
con.setDoOutput(true);
BufferedReader ip=new BufferedReader(new InputStreamReader(con.getInputStream()));
String tmp,res="";
while((tmp=ip.readLine())!=null)
{
res+=tmp;
}
return res; //res contains the public key
}
catch(Exception e)
{
return new String("Exception : "+e.getMessage());
}
}
我正在java中使用Bouncy castle提供程序(bcprov-jdk15on-151)
现在我不知道如何将这个字符串转换为RSA公钥
请推荐一些代码片段?如果代码需要改进和更正,请更正它
谢谢
# 1 楼答案
假设您正确下载了密钥,您可以使用
base 64 encoding
中的密钥生成java.security.PublicKey
,代码如下:希望这有帮助