#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. пожалуйста, ознакомьтесь с обновленным сообщением