提问者:小点点

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


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


共1个答案

匿名用户

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