2014-02-16 83 views
1

我用PHP(openssl)生成了一個RSA密鑰。它工作正常。我用這個PHP腳本來創建密鑰:加載OpenSSL生成的Android/Java中的RSA密鑰?

$config = array(
"digest_alg" => "sha512", 
"private_key_bits" => 2048, 
"private_key_type" => OPENSSL_KEYTYPE_RSA, 
); 
$keys = openssl_pkey_new($config); 
$privateKey = openssl_pkey_get_private($keys); 
$details = openssl_pkey_get_details($privateKey); 
$publicKey = $details['key']; 
openssl_pkey_export_to_file($privateKey, 'private.pem'); 
file_put_contents('public.der', $publicKey); 

現在我想由Android/Java的加載項(public.der和private.pem)。但我不知道如何因爲RSA密鑰的格式。我認爲public.der可以在資產文件夾中(在Android中)。

我不會將屬於私鑰的公鑰存儲在同一個設備上。

編輯:的public.der文件的內容:

-----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAog/07W7tF/7/tugWy5Fe 
cyGMnwbvqYbyPVBJ8/08nZS79sZfROAuxrGz4CJMosCJp9MZdDiwKuLNaQ9Pbayz 
mOq6sQ2XpGFDhqrVJJaw3R+oq8dWgtnyZcRs9MvUYVOOltqXV/NVv+X+JECqx8Pz 
WiEim6mQtIbcjQ78hZhiC3kZeRIa17YVM/Yagu4tGne/F6gQaMvA+ZSWJIj5mvU1 
UOuuCsCsTF5HQbrgWTH7P+ZB3andvPDnih9eNeeplxcVwk1KKdtkn7l1a8t7YYVW 
eJtmtfd+sgjeCRDSqh1DNtDTanHOILunGBPZ85bN9dLZ3v5YJeQX4LL5R2jqy3ti 
owIDAQAB 
-----END PUBLIC KEY----- 

回答

2

問題「load RSA public Key From File」有詳細答案的問題如何DER編碼密鑰加載到Java應用程序。

而問題「Getting RSA private key from PEM BASE64 Encoded private key file」則描述了將PEM編碼的公鑰加載到Java應用程序中。

+0

我已經試過這個,但是在讀取公鑰時出現這個錯誤:java.security.spec.InvalidKeySpecException:java.lang.RuntimeException:error:0D0680A8:asn1編碼例程:ASN1_CHECK_TLEN:錯誤的標記。你可以幫我嗎?如果我將BC添加爲參數,我也會得到一個錯誤:java.security.spec.InvalidKeySpecException:java.io.IOException:無法識別流中的對象 – JavaForAndroid

+0

「public.der」的內容是什麼? – divanov

+0

我在第一篇文章中添加了public.der文件的內容。 – JavaForAndroid

相關問題