Что я пробовал:
Я декодирование закрытого ключа в кодировке Base64, временное сохранение его в файле, а затем использование openssl_pkey_get_private() для загрузки закрытого ключа с парольной фразой. Вот упрощенная версия кода:
Код: Выделить всё
$private_key_encoded = '...'; // Base64 encoded private key
$passphrase = 'your_passphrase';
// Decode the base64-encoded private key
$private_key_decoded = base64_decode($private_key_encoded);
// Write decoded private key to a temporary file
$tmp_key_file = tempnam(sys_get_temp_dir(), 'key');
file_put_contents($tmp_key_file, $private_key_decoded);
// Try to load the private key using the passphrase
$privateKey = openssl_pkey_get_private("file://$tmp_key_file", $passphrase);
if ($privateKey !== false) {
echo 'Passphrase is correct!';
} else {
echo 'Passphrase is incorrect!';
}
// Clean up temporary file
unlink($tmp_key_file);
Каков правильный способ строгой проверки парольной фразы для закрытого ключа в PHP? Есть ли более надежный способ убедиться, что парольная фраза проверена? Стоит ли мне попытаться подписать данные с помощью ключа для принудительной проверки?
Будем признательны за любые советы или примеры кода. Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... key-in-php