如何从PHP中的指数,模数和私有指数获取私钥?

时间:2016-09-22 09:14:18

标签: php rsa private-key

我在 PHP加密中的新功能,我正在使用openssl进行加密操作。 Openssl Rsa需要PEM格式,但我有十六进制模数(n),私有指数(d)和公共指数(e)。 如何从这些组件生成私钥? 对不起我的英语。

1 个答案:

答案 0 :(得分:0)

RSA私钥通常也有一堆其他参数。用于创建模数(p和q)和其他参数的素数,以便于使用中国余数定理来加速解密。如果您没有,那么我只需创建一个公钥。您可以用PRIVATE idk替换PUBLIC。

无论如何,这里有一些代码(使用phpseclib 1.0.3):

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

$rsa = new Crypt_RSA();
$rsa->loadKey([
    'e' => new Math_BigInteger('...'), // base-10 by default
    'n' => new Math_BigInteger('...') // base-10 by default
]);

echo $rsa;

我使用15作为e和n(实际上它不是用于RSA目的的有效组合,但出于演示目的它很好)并且得到了回复:

-----BEGIN PUBLIC KEY-----
MBowDQYJKoZIhvcNAQEBBQADCQAwBgIBDwIBDw==
-----END PUBLIC KEY-----