как расшифровать строку с помощью закрытого ключа

#php #openssl

#php #openssl

Вопрос:

как расшифровать зашифрованную строку с помощью закрытого ключа

Я попробовал этот код, но возвращенная строка была пустой

в чем проблема

Я получаю более одной ошибки

 error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed
error:0407109F:rsa routines:RSA_padding_check_PKCS1_type_2:pkcs decoding error
error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt


if (!$cert_store = file_get_contents(storage_path('certificates/Naq.pfx')))
    {
      return "Error: Unable to read the cert filen";
    }
    if (openssl_pkcs12_read($cert_store, $cert_info, "P@ssw0rd")) 
    {
       $certInfo   = $cert_info['cert'];
       $privateKey = $cert_info['pkey']; // private key
       $extracerts = $cert_info['extracerts'][0]; 
         
       $encrypted = base64_decode($request_decryption_key);
       openssl_private_decrypt($encrypted, $decrypted, $privateKey);
       return $decrypted;
    } 
    else {
       return "Error: Unable to read the cert store.n";
    }
 

Комментарии:

1. Без примера ввода, ключей и ожидаемого результата мы не можем предложить никакой полезной информации, поскольку мы не можем воспроизвести проблему.

2. Вы говорите о гибридном шифровании , и это обычно означает, что вы работаете в 3 этапа: 1) генерируете случайный ключ AES, 2) шифруете данные / сообщение с помощью этого ключа AES, 3) шифруете ключ AES с помощью открытого ключа получателя. Расшифровка выполняется наоборот: 1) расшифруйте (зашифрованный) ключ AES с помощью закрытого ключа получателя, 2) расшифруйте (зашифрованные) данные с помощью (теперь расшифрованного) ключа AES. Разбейте код на эти шаги и отладьте ввод и вывод — вы найдете строку кода, в которой данные выглядят по-другому. Пожалуйста, отредактируйте свой вопрос -> минимальный пример.

3. пожалуйста, ознакомьтесь с обновленным сообщением