ANDROID接入华为SDK遇到的SHA256withRSA的问题解决

在接入华为SDK的过程中,发现新版本省略了原有的登录步骤4和5。对比酷派SDK的旧版本,发现酷派提供了C++样例代码,其中SHA1withRSA算法无需依赖第三方库,这为解决华为SDK问题提供了启示。酷派的代码和技术支持获得了高度评价。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

华为的SDK在登录时原来的实现思路是:

1、C->SDK-C

2、SDK-C->C

3、C->S

4、S->SDK-S

5、SDK-S->S

6、S->C

新版本中,把步骤4和步骤5省了,官方原文:

游戏可以将gameAuthSign、 playerId、 appId和ts提交到游戏自己的服务器,使用文档附
录一中的公钥进行验签,验签方式如下:
a. 将 appId、 ts 和 playerId 的值进行连接;
b. 将 a 的值使用 SHA256 计算 HASH;
c. 将 b 的值使用公钥采用 RSA 算法进行验签,公钥值请参考本文档的“ 7.1 登录鉴权
签名的验签公钥”。
官方java核心代码:

    public static boolean verify(byte[] data, String publicKey, String sign)
            throws Exception
    {
        byte[] keyBytes = Base64Util.decode(publicKey);
        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        PublicKey publicK = keyFactory.generatePublic(keySpec);
        Signature signature = Signature.getInstance("SHA256WithRSA");
        signature.initVerify(publicK);
        signature.update(data);
        return signature.verify(Base64Util.decode(sign));
    }
官方php核心代码:(参考http://club.huawei.com/thread-5443470-1-1-2851.html)
$pubKey = @file_get_contents($filename);
$openssl_public_k
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值