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-----
我已經試過這個,但是在讀取公鑰時出現這個錯誤:java.security.spec.InvalidKeySpecException:java.lang.RuntimeException:error:0D0680A8:asn1編碼例程:ASN1_CHECK_TLEN:錯誤的標記。你可以幫我嗎?如果我將BC添加爲參數,我也會得到一個錯誤:java.security.spec.InvalidKeySpecException:java.io.IOException:無法識別流中的對象 – JavaForAndroid
「public.der」的內容是什麼? – divanov
我在第一篇文章中添加了public.der文件的內容。 – JavaForAndroid