Приведенный ниже следующий метод PHP для проверки правильности подписи для указанных данных с использованием открытого ключа, связанного с pub_key_id. Увидеть PHP openssl_verify. Что такое рубиновый эквивалент? У меня есть следующий фрагмент кода PHP:
$data = $_POST['posted_data'];
$signature = base64_decode($_POST['signature']);
$public_key_id = openssl_pkey_get_public($public_key);
$verified = openssl_verify($data, $signature, $public_key_id);
openssl_free_key($key_id);
if($verified == 1)
{
echo "VERIFIED";
}
else if ($verified == 0)
{
echo "VERIFICATION FAILED";
}
else if ($verified < 0)
{
echo "ERROR";
}
Я пытаюсь написать рубиновый эквивалент программы? Заранее спасибо.
Я считаю, что это должно работать для вас:
signature = Base64.decode64(params["signature"])
sha256 = OpenSSL::Digest::SHA256.new
pub_key = OpenSSL::PKey::RSA.new(public_key).public_key
pub_key.verify(sha256, signature, params["data"])
Это вернется true
если они совпадают, false
иначе
Других решений пока нет …