Yodlee API return 数据加密错误

Yodlee API return error with data encrypted

我正在使用 yodlee 和 rails 构建一个应用程序,在沙盒上一切正常,问题是当我使用具有 PKI 功能的 live env 时。

我正在从 here

获取 API 密钥

然后我使用这些代码行来加密敏感信息(username/password/pin)

  key= public_key
  rsa_key = OpenSSL::PKey::RSA.new(key.keyAsPemString)
  key.keyAlias + ":" +Base64.encode64(rsa_key.public_encrypt(value_to_encrypt))

我发送了请求,但我收到了这个

 {"errorCode"=>"Y400", "errorMessage"=>"Decryption failure for FieldInfo:FieldInfoSingle: {FieldInfo: name=\"LOGIN\" displayName=\"null\" editable=true optional=false helpText=\"null\" valuePattern=\"null\" } defaultValue=\"null\" value=\"\" validValues=[null] displayValidValues=[null] valueIdentifier=\"null\" valueMask=\"null\" fieldType=\"TEXT\" validationRules=[null] size=null maxlength=null userProfileMappingExpression=null fieldErrorCode=null fieldErrorMessage=null ", "referenceCode"=>"RB_3cf12f35-05d3-4d87-a1f9-edcfc62df3d2"}

有什么想法吗?

official Java version of the encryption code seems to be the final encoding. It should be hex-encoded的唯一区别,不是Base64编码。试试这个:

key.keyAlias + ":" + Digest.hexencode(rsa_key.public_encrypt(value_to_encrypt))

您的实际环境中似乎没有正确启用 PKI 功能。请要求 Yodlee 支持团队根据您的需要启用或禁用 PKI。一旦他们这样做,它应该会按预期工作。