0

次の公開鍵があります。

//Beginig of the PBK
30819f300d06092a864886f70d010101050003818d003081890281810095e15f182ec7b6e84786c0ee54e3bb72af0461e6fd859a3625f38dcd3fdec80dfcc51a44756ec7cd6c14b430d55670460c5143efadd1ade7380e890e9957d6e6b38f35412862cc955e04d1928f21c0d2f7bc48c3855276f0e7c1b45a558e3a013b969cbfaebca42b748e64bff787f86ec5f0adcd94428c4ab8ca6d2b710d785b0203010001
//End of the PBK

これは、X509 構造内の PKCS#1 でエンコードされた公開鍵です。だから私の質問はどうすればPHPでこのX509 PKIX形式から公開鍵を抽出してRSA暗号化で使用できますか?

ありがとう。

4

1 に答える 1

0

純粋な PHP RSA 実装である phpseclibを使用します。

<?php
include('Crypt/RSA.php');

$cert = pack('H*', '30819f300d06092a864886f70d010101050003818d003081890281810095e15f182ec7b6e84786c0ee54e3bb72af0461e6fd859a3625f38dcd3fdec80dfcc51a44756ec7cd6c14b430d55670460c5143efadd1ade7380e890e9957d6e6b38f35412862cc955e04d1928f21c0d2f7bc48c3855276f0e7c1b45a558e3a013b969cbfaebca42b748e64bff787f86ec5f0adcd94428c4ab8ca6d2b710d785b0203010001');

$rsa = new Crypt_RSA();
$rsa->loadKey($cert);
echo $rsa;
?>

これを返します:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCV4V8YLse26EeGwO5U47tyrwRh5v2FmjYl843N
P97IDfzFGkR1bsfNbBS0MNVWcEYMUUPvrdGt5zgOiQ6ZV9bms481QShizJVeBNGSjyHA0ve8SMOF
Unbw58G0WlWOOgE7lpy/rrykK3SOZL/3h/huxfCtzZRCjEq4ym0rcQ14WwIDAQAB
-----END PUBLIC KEY-----

ここで phpseclib が実際に行っていると思うのは、パックされた $cert を base64_encode し、それにヘッダーとフッターを追加することです。どのような形式のキーが必要ですか? 指数とモジュロを基数 10 形式で取得しますか、それとも上記で十分ですか?

于 2012-11-28T17:23:47.390 に答える