2016-05-23 96 views
1

我正在用yodlee和rails构建一个应用程序,在沙箱上的一切工作正常,当我使用实时env时,它具有PKI功能。Yodlee API返回数据加密错误

我得到我的API密钥从here

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

任何想法?

回答

0

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

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

看起来像在你的生活环境PKI功能没有正确启用。请要求Yodlee支持团队根据您的需要启用或禁用PKI。一旦他们这样做,它应该按预期工作。