我是Android新手,我正在開發基於客戶端服務器的應用程序。在這裏我需要使用RSA算法進行加密/解密。將PHP生成的公鑰轉換爲Java公鑰
的情況是: 1.Server必須創建一個私有/公共密鑰對(PHP)和發送公鑰客戶端(Android應用程序) 2,客戶端應該使用公共密鑰來加密數據併發送至服務器 3.現在的服務器必須使用私鑰解密。
在PHP中,我使用'PhpSecLib'來創建密鑰對。
這是編碼:
Server.php:
<?PHP
include 'Crypt/RSA.php';
$rsa = new Crypt_RSA();
extract($rsa->createKey(1024));
echo $publickey;
?>
生成的公鑰:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLz4yAo1FTOLc6nijBCTv5iVnW F6MxCeM5 + RXY + 29AXcpMWhlM9oES3ESIfWw6OzrrENDyqwY + kVzCj2bWYnEAyJXs WOpvqT2XSCPplwZOnQQGm + DnAYJXEeOfgU5DI63fwdiGv4M2 ph1VMMe6684sBZu1 HhJHuhsX2eibBR0/lQIDAQAB
現在在Java中,我成功地收到了這個公鑰並存儲在一個String中。
編碼:
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中使用充氣城堡提供商(bcprov-jdk15on-151)。
現在我不知道如何將此字符串轉換爲RSA公鑰。
請提供一些代碼片段?如果代碼需要改進和更正,請糾正它。
謝謝...
謝謝老兄..得到它.. – Jeeva 2015-01-23 10:44:54
@Jeeva歡迎:)如果答案可以幫助你記得接受它:) – albciff 2015-01-23 10:49:48