rsa — как получить закрытый ключ от экспоненты, модуля и частного экспонента в PHP?

я новичок в PHP Crypto и я использую openssl для выполнения операций шифрования.
Openssl Rsa нужен формат PEM, но у меня есть шестнадцатеричный модуль (n), частный показатель (d) и открытый показатель (e).
Как я могу сгенерировать закрытый ключ из этих компонентов?
И извините за мой английский.

0

Решение

Закрытые ключи RSA обычно также имеют множество других параметров. Простые числа, которые использовались для создания модуля (p и q) и других параметров, чтобы облегчить использование китайской теоремы об остатках для ускорения дешифрования. Если у вас этого нет, я бы просто создал открытый ключ. Вы можете заменить PUBLIC на PRIVATE idk.

Во всяком случае, вот код (использует 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-----
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]