Ios 苹果支付-解密支付数据
我正在尝试在成功获得Apple Pay授权后解密Ios 苹果支付-解密支付数据,ios,encryption,ios8.1,applepay,Ios,Encryption,Ios8.1,Applepay,我正在尝试在成功获得Apple Pay授权后解密PKPaymentToken对象的paymentData属性 我试图按照说明进行操作,但我被困在解密步骤的第2步,上面说: 使用publicKeyHash键的值确定哪个商户 Apple使用公钥,然后检索相应的 商户公钥证书和私钥 我该怎么做 请告知 谢谢 publicKeyHash字段的值是……公钥的散列。根据文档,这是商户证书的X.509编码公钥字节的SHA-256散列。您可以使用它来确定哪个商户标识符用于签署支付数据(您可能只有一个商户标识符,
PKPaymentToken
对象的paymentData
属性
我试图按照说明进行操作,但我被困在解密步骤的第2步,上面说:
使用publicKeyHash键的值确定哪个商户
Apple使用公钥,然后检索相应的
商户公钥证书和私钥
我该怎么做
请告知
谢谢 publicKeyHash字段的值是……公钥的散列。根据文档,这是商户证书的X.509编码公钥字节的SHA-256散列。您可以使用它来确定哪个商户标识符用于签署支付数据(您可能只有一个商户标识符,在这种情况下,您已经知道使用的是哪个商户标识符)。鉴于从Apple Developer Center下载的Apple Pay证书文件,下面介绍如何在Ruby中计算publicKeyHash
require "base64"
require "digest"
require "openssl"
# set cert_file = path to the downloaded Apple Pay .cer file
cert = OpenSSL::X509::Certificate.new(File.read(cert_file))
# strip off the "-----BEGIN PUBLIC KEY-----" line at the start of the string
pem = cert.public_key.to_pem.split("\n").drop(1)
# strip off the "-----END PUBLIC KEY-----" line at the end of the string
pem = pem.take(pem.length - 1)
decoded = Base64.decode64(pem.join)
public_key_hash = Digest::SHA256.base64digest(decoded)
好的,但是在代码中我需要做什么呢?我是否需要在应用程序包中包含商户证书,从中提取公钥,在其上生成SHA-256并检查其是否等于publicKeyHash字段?其他步骤呢?如何获取商户的私钥?您首先是如何生成商户证书的?您在生成证书时向Apple提供了私钥,因此您应该已经拥有了它。