给定php验证,使用公钥id验证指定数据的签名是否正确。ruby等价物是什么?

给定php验证,使用公钥id验证指定数据的签名是否正确。ruby等价物是什么?,php,ruby,openssl,Php,Ruby,Openssl,使用下面的PHP方法,使用与pub_key_id关联的公钥验证指定数据的签名是否正确。请参阅。ruby的等价物是什么?。我有以下PHP代码片段: $data = $_POST['posted_data']; $signature = base64_decode($_POST['signature']); $public_key_id = openssl_pkey_get_public($public_key); $verified = openssl_verify($data, $signatu

使用下面的PHP方法,使用与pub_key_id关联的公钥验证指定数据的签名是否正确。请参阅。ruby的等价物是什么?。我有以下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";
}
$data=$\u POST['posted\u data'];
$signature=base64_解码($_POST['signature']);
$public\u key\u id=openssl\u pkey\u get\u public($public\u key);
$verified=openssl\u verify($data、$signature、$public\u key\u id);
openssl免费密钥($key\u id);
如果($verified==1)
{
回声“已验证”;
}
else if($verified==0)
{
echo“验证失败”;
}
否则如果($verified<0)
{
回声“错误”;
}

我正在尝试编写与ruby相当的程序?提前感谢。

我相信这对您来说应该是可行的:

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