使用Ruby on Rails比较Android Market响应中的签名数据和签名

时间:2012-02-27 17:37:22

标签: java ruby-on-rails ruby rsa google-play

我想知道是否有人有任何关于如何解决这个问题的文献的链接。

我从Android电子市场收到两组数据; “签名数据”,购买的JSON表示,以及“签名”,Base64编码,加密的签名数据表示。

我认为重点是使用公钥加密签名数据并将其与签名进行比较?

到目前为止,我的策略如下:

1)Base64解码公钥并使用OpenSSL :: PKey :: RSA.new创建公钥对象

2)Base64解码从Android返回的签名

3)使用公钥加密签名数据并与签名进行比较

在Ruby中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这是答案: How do I verify Android In-app Billing with a server with Ruby?

在第一步中创建的公钥对象有一个方便的verify方法,用于将步骤2中的Base64解码数据与签名数据进行比较。

verified = key.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(signature), signed_data)

幸福。