Я генерирую пару ключей с помощью openssl:
shell> ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/mike/.ssh/id_rsa): /path/to/test_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /path/to/test_rsa. Your public key has been saved in /path/to/test_rsa.pub.
И затем я генерирую модуль из закрытого ключа:
shell> openssl rsa -in /path/to/test_rsa -noout -modulus > /path/to/modulus.txt
Теперь, есть ли способ получить test_rsa.pub (открытый ключ) только из модуля?
Вы можете получить открытый ключ в более стандартизованном формате, используя phpseclib, чистую реализацию PHP RSA . например.
<?php include('Crypt/RSA.php'); $modulus = 'yEQs2LxSHBZgZCH0rRQQy9kmry8g2tNhQL1B9f5azNz9Ce9pXPgSRjVUo1B9Ggb/FK3jy41wWd2IfS6rse3vBzRsabMj29CVODM/19yZPmwEmjJHCgYd+AA2qweKZanDp4FLsSw/kyV5WoPN16GHEMLmLGkJFNIWtzzH5jV+S80='; $exponent = 'AQAB'; $rsa = new Crypt_RSA(); $modulus = new Math_BigInteger(base64_decode($modulus), 256); $exponent = new Math_BigInteger(base64_decode($exponent), 256); $rsa->loadKey(array('n' => $modulus, 'e' => $exponent)); $rsa->setPublicKey(); echo $rsa->getPublicKey();
в<?php include('Crypt/RSA.php'); $modulus = 'yEQs2LxSHBZgZCH0rRQQy9kmry8g2tNhQL1B9f5azNz9Ce9pXPgSRjVUo1B9Ggb/FK3jy41wWd2IfS6rse3vBzRsabMj29CVODM/19yZPmwEmjJHCgYd+AA2qweKZanDp4FLsSw/kyV5WoPN16GHEMLmLGkJFNIWtzzH5jV+S80='; $exponent = 'AQAB'; $rsa = new Crypt_RSA(); $modulus = new Math_BigInteger(base64_decode($modulus), 256); $exponent = new Math_BigInteger(base64_decode($exponent), 256); $rsa->loadKey(array('n' => $modulus, 'e' => $exponent)); $rsa->setPublicKey(); echo $rsa->getPublicKey();