Закрытый ключ шифрования RSA без ключевой фразы? - PullRequest
0 голосов
/ 02 июля 2019

Я получил некоторую документацию от клиента, где указан ЧАСТНЫЙ КЛЮЧ RSA.

Я не могу найти способ зашифровать текст этим ключом, без необходимости вводить другую пароль?

Они включают «демонстрационный пример» в Java, для того, как это делается.

publicstaticStringsign(StringstringA, StringprivateKey, Stringinput_charset) 
{
   try {
     PKCS8EncodedKeySpecpriPKCS8 = 
         newPKCS8EncodedKeySpec(Base64.decode(privateKey));
         KeyFactorykeyf = KeyFactory.getInstance("RSA");
         PrivateKeypriKey = keyf.generatePrivate(priPKCS8);
         java.security.Signaturesignature =              
         java.security.Signature.getInstance("SHA1WithRSA");
         signature.initSign(priKey);
         signature.update(stringA.getBytes("UTF-8"));
         byte[] signed = signature.sign();

         returnBase64.encode(signed);
     } catch (Exceptione) {
           e.printStackTrace();
     }
      returnnull;
 }

Когда я пытаюсь использовать PHP, он говорит, что ключ неверный. Итак, мой ответ: как я могу зашифровать текст ключом, который я получил из документации? Без пароля для «закрытого ключа»?

 function encryptData($raw)
  {
       global $privateKey;
       $privateKey = openssl_pkey_get_private($privateKey);

       if (!$privateKey) {
            throw new RuntimeException('Invalid private key or passphrase');
       }

       // Encrypt digest using the key
          $encrypted = "";

           openssl_private_encrypt($raw, $encrypted, $privateKey, OPENSSL_PKCS1_PADDING);

          return $encrypted;
     }

      encryptData("Hello world!");

Мой личный ключ:

MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEA
AoGBAIpUpl1YsfN5V2iSLDdih1ymU4W0zC05oUYftsT4CE
FFEgPJdqxTqFoaza01+OLbAzewzRvcTjmyFscahx6X3K4oh
1aJ14jrTXCxqc3E4sfPI/QBxioLVusm+jznnBP5h0iiX1gtdkG
Kj1VmrkkX7brMUDH7y6jqod/TqnHMPVAFAgMBAAECg
YAfnmG4jIGAaYf1OxQoRLk0EECfG0hgPgADC1S3iQo6AR
OxEeeyVBzzG5VPtjqBgBYoMJ1xdNXckjxqnkGsWIH0Zrjal
N7NApDNiq76lINk/xXCRZWLjy7BSa/z6rc8mtYbYf57yxbm
VwznO8f2VlWkjQ8fJ8c5+xxqBlvm9hyoAQJBAMvrncsVSt13
a6IsPk4+2IGO73lgXgtBq3mImIZfK63QniAatrDxTe4i6R4l5
DEPUZ5ETObTqeRajjQ1e/boC4UCQQCtqMF3Kh04DNdF
AXgpf79pA81ymDmzwZIcBpD9LTJcNbSORGUq/aWmWSz
naPtRcF+zSAvKjgLzB3QHsdwO1BqBAkAi2vkzt0X+qOTq6
WkU8sULECV6tsdbeHQY5/I6NZYsdLxtd84S2aop6r1Dk
D86cNnrAEBC3jkoVsdvvuYJAXXXkBMlDJcPjIMWX1EbNV
0V2UtBgQ/GGm5nw6zVSHyw0+F4hjw87A5OQknRgPLOD
w7OXa6NHcep2kdipsdVzbwgqX4rilqqFTeJhy/tDiFJKhi4xOm
DQRIdVhhhgZs81
...