2016-05-23 103 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。一旦他們這樣做,它應該按預期工作。