负载产生的OpenSSL Android中/ Java的RSA密钥? [英] Load RSA key in Android/Java generated with OpenSSL?

查看:151
本文介绍了负载产生的OpenSSL Android中/ Java的RSA密钥?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经生成与PHP(OpenSSL的)RSA密钥。它workes罚款。我用这个PHP脚本来创建密钥:

  $配置=阵列(
digest_alg=> SHA512
private_key_bits=> 2048,
private_key_type=> OPENSSL_KEYTYPE_RSA,
 );
$键= openssl_pkey_new($配置);
$ privateKey = openssl_pkey_get_private($键);
$细节= openssl_pkey_get_details($ privateKey);
$公钥= $细节['关键'];
openssl_pkey_export_to_file($ privateKey,'private.pem');
的file_put_contents('public.der',$公钥);

现在我想的Andr​​oid / 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 -----


解决方案

问题<一个href=\"http://stackoverflow.com/questions/11410770/java-load-rsa-public-key-from-file#answer-19387517\">load RSA公钥从文件有详细答案的问题如何DER-EN codeD密钥加载到Java应用程序。

和问题<一个href=\"http://stackoverflow.com/questions/7216969/getting-rsa-private-key-from-pem-base64-en$c$cd-private-key-file#7221381\">Getting从PEM BASE64恩codeD私钥文件RSA私钥介绍加载PEM-CN codeD公钥到Java应用程序。

I have generated a RSA key with PHP (openssl). It workes fine. I used this PHP script to create the keys:

$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);

Now I would like to load the keys (public.der and private.pem) by Android/Java. But I do not know how because of the format of the RSA key. I think the public.der can be in the assets folder (in Android).

I will not store the public key which belongs to the private key on the same device.

Edit: The content of the public.der file:

-----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-----

解决方案

Question "load RSA public Key From File" has a detailed answer to the question how to load DER-encoded keys into Java application.

And question "Getting RSA private key from PEM BASE64 Encoded private key file" describes loading PEM-encoded public key into Java application.

这篇关于负载产生的OpenSSL Android中/ Java的RSA密钥?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆