android – Google Play中应用结算算法中的“签名”是什么

Google Play使用RSA算法进行加密/解密.在谷歌播放返回的数据中,有一个名为“签名”的字段.

Bundle containing the following key-value pairs
"RESPONSE_CODE" with int value, RESULT_OK(0) if success, other response codes on failure as listed above.
"INAPP_PURCHASE_ITEM_LIST" - StringArrayList containing the list of SKUs
"INAPP_PURCHASE_DATA_LIST" - StringArrayList containing the purchase information
"INAPP_DATA_SIGNATURE_LIST"- StringArrayList containing the signatures of the purchase information
"INAPP_CONTINUATION_TOKEN" - String containing a continuation token for the next set of in-app purchases. Only set if the user has more owned skus than the current list.

我想知道在IInAppBillingService方法(getSkuDetails,getBuyIntent和getPurchases)中使用了什么“Signature”和“Signature list”.

最佳答案 来自Android Developers网站的参考:

INAPP_DATA_SIGNATURE – String containing the signature of the purchase
data that the developer signed with their private key. The data
signature uses the RSASSA-PKCS1-v1_5 scheme.

购买签名是通过使用与您的开发者帐户关联的私钥对INAPP_PURCHASE_DATA进行签名而创建的字符串.您可以使用签名来验证购买数据是否未以任何方式被篡改,并且用户实际购买了您的应用程序.

由于签名过程是使用私钥完成的,因此应在远程服务器上进行验证,而不要在设备本身上进行验证,因此如果您希望使用此安全功能,则需要实现自己的验证服务器.

点赞