200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > android 支付宝私钥加密 支付宝支付密钥RSA1升级到RSA2

android 支付宝私钥加密 支付宝支付密钥RSA1升级到RSA2

时间:2021-04-27 03:53:02

相关推荐

android 支付宝私钥加密 支付宝支付密钥RSA1升级到RSA2

前言

支付宝作为国内第一的第三方支付平台,安全的重要性不言而喻了,下面主要对密钥做一个简单的介绍和升级流程。

介绍

SHA-1与SHA-2

SHA代表安全哈希算法。SHA-1和SHA-2是该算法不同的两个版本,它们的构造和签名的长度都有所不一样,但可以把SHA-2理解为SHA-1的继承者。

首先,人们一般把哈希值位数长度作为重要的区别,SHA-1是160位的哈希值,而SHA-2是组合值,有不同的位数,其中最受欢迎的是256位。

公钥和私钥

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。

公钥和私钥是成对出现的,我们会保留有自己的私钥,同时公开自己的公钥。一个很典型的例子是GitHub的使用。我们通常不会使用账号密码来管理自己的项目,而是通过将自己的公钥上传到GitHub的里,而自己的电脑里则保留有相对应的私钥,从而达到免密码提交代码。

当然私钥和公钥对是唯一的,而你也可以随时重新生成自己的公钥和私钥密码对,但当你从新生成密钥对并覆盖了就有的密钥时,你之前的公钥就作废了。

简单来说就是:公钥加密,私钥解密,私钥签名,公钥验证。

升级

蚂蚁金服开放平台接口签名方式升级,由此前的RSA(SHA1)升级为RSA(SHA256),请按照以下步骤来完成升级:生成RSA2密钥(详情查看如何生成密钥,可下载支付宝提供的密钥生成工具,选择2048来生成密钥即可);

请把生成的商户公钥上传给支付宝,详情请查看如何上传商户公钥并换取支付宝公钥;

在调支付宝接口传参数的时候把sign_type的值改成 RSA2,私钥请使用步骤1生成的RSA2私钥;

注意事项:验签的时候支付宝公钥需要改成可配置的,因为RSA2的支付宝公钥每个商户都不一样,不能统一默认。

把生成好的公钥上传到支付宝后台,会自动生成支付宝公钥。注意,此公钥非彼公钥,是两个不同的东西。

这里两种签名方式可以共存,互不影响,只要保证公钥私钥一致即可。

代码升级

如果是当面付,也就是扫码支付,需要重新下载alipay-trade-sdk,并在配置zfbinfo.properties参数中增加以下参数:# 签名类型: RSA->SHA1withRsa,RSA2->SHA256withRsa

sign_type = RSA2

如果是PC或者手机支付,只需要在创建AlipayClient传入RSA2即可:AlipayClient alipayClient = new DefaultAlipayClient(

Configs.getOpenApiDomain(), Configs.getAppid(),

Configs.getPrivateKey(), "json", "UTF-8",

Configs.getAlipayPublicKey(),"RSA2");

项目源码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。