2011-05-19 59 views
0

嗨,我正在做簡單的tcp客戶端服務器程序。還使用chiper方法來加密數據傳輸。最初客戶端將請求發送到服務器。在服務器端,它接受客戶端,並將服務器的公鑰發送給客戶端。在客戶端,它使用服務器的公鑰並使用該密鑰對數據進行加密。這裏是問題 發送服務器公鑰,將公鑰數據類型轉換爲字符串,併發送它。但無法將其轉換爲公鑰數據類型。是任何inbuild方法將公鑰轉換爲字符串,反之亦然??如何轉換它..請引導我...publickey fromate轉換爲字符串,反之亦然

回答

6

您可以使用PublicKeys方法「getEncoded」,它給你一個X509編碼表示(字節[])的公鑰。然後可以使用套接字連接發送此數組。

您還可以生成從編碼那樣的公共密鑰:

KeyFactory rsaKeyFac = KeyFactory.getInstance("RSA"); 
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(key); 
RSAPublicKey rsaPubKey = (RSAPublicKey)rsaKeyFac.generatePublic(keySpec); 
return new PublicKeyImpl(rsaPubKey);  
相關問題