我正在使用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"}
有什么想法吗?
答案 0 :(得分:0)
与加密代码official Java version的唯一区别似乎是最终编码。它应该是 hex-encoded ,而不是Base64编码。试试这个:
key.keyAlias + ":" + Digest.hexencode(rsa_key.public_encrypt(value_to_encrypt))
答案 1 :(得分:0)
在您的实时环境中,似乎未正确启用PKI功能。请让Yodlee支持团队根据您的需要启用或禁用PKI。一旦他们这样做,它应该按预期工作。