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