Yodlee API返回错误,数据已加密

时间:2016-05-23 16:01:28

标签: ruby-on-rails yodlee

我正在使用yodlee和rails构建应用程序,一切都在沙盒上工作正常,这是我使用实时环境时PKI功能的问题。

我从here

获取了我的API密钥

然后我使用这些代码行来加密敏感信息(用户名/密码/ 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"}

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

与加密代码official Java version的唯一区别似乎是最终编码。它应该是 hex-encoded ,而不是Base64编码。试试这个:

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

答案 1 :(得分:0)

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