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