gpt4 book ai didi

javascript - Parse.com 云代码 RSA 验证 - Android 应用内购买验证

转载 作者:行者123 更新时间:2023-11-29 21:55:27 25 4
gpt4 key购买 nike

我正在尝试验证 Parse.com 云代码上的 RSA 签名。基本上,我正在尝试在服务器上对 Android 应用内购买进行收据验证。

Parse.com 加密模块不支持验证方法。所以我找到了一个 library我导入的在线。

var KJUR = require("cloud/jsrsasign-4.7.0/npm/lib/jsrsasign.js"); 
var verifier = new KJUR.crypto.Signature({alg: "SHA1withRSA", prov: "cryptojs/jsrsa"});
verifier.initVerifyByCertificatePEM(publicKey);
verifier.updateString(purchaseData);
//verifier.updateHex(hexValue);
var result = verifier.verify(signature);

我做错了什么,但不能真正说出是什么。我可能将签名、公钥和购买数据放在了错误的位置。

购买数据如下所示:(根据 Android 规范,我更改了数据)

var purchaseData = {
orderID: "12999763169854705758.1300523466622834",
packageName: "com.blabla.bla",
productID: e.purchase.SKU,
purchaseTime: new moment(time).valueOf(),
purchaseState: 0,
developerPayload: "74571d75-98b8-4327-942d-5379309c9033",
purchaseToken: "klsDmifojfknmbojimkkkdkm.AO-J1OyXvZ3RH1aPiPD2MIdOUu00FrCnuTCjl1-K3ZD4Puu0zXDPTOAKH3Dc1hq1DZwiNI-AgXwW18gDV3eU9kXCR1IwhADLvVeOSkyu5kzdUBoVNdA42Zc"
};

我收到以下错误:

Result: TypeError: Cannot call method 'bitLength' of undefined
at RSAKey._rsasign_verifyWithMessageHash [as verifyWithMessageHash] (jsrsasign-4.7.0/npm/lib/jsrsasign.js:251:3675)
at verify (jsrsasign-4.7.0/npm/lib/jsrsasign.js:230:10483)
at main.js:43:24

如果您以前有这方面的经验,我将不胜感激您的帮助。谢谢

最佳答案

方法如下:

var KJUR = require("cloud/jsrsasign.js"); 
var publicKey =
"-----BEGIN PUBLIC KEY-----\n" +
// your public key from google play
"-----END PUBLIC KEY-----\n";

var verifier = new KJUR.crypto.Signature({alg: "SHA1withRSA"});
verifier.init(publicKey);
verifier.updateString(signedData); // signedData from IAB response
var result = verifier.verify(KJUR.b64utohex(signature));

请务必将签名从 base64 转换为十六进制。

关于javascript - Parse.com 云代码 RSA 验证 - Android 应用内购买验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26653270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com