【RSA加解密】Last encoded character (before the paddings if any) is a valid base 64 alpha
背景
对接支付通道过程中,使用RSA秘钥对参数进行加密时,经常会遇到类似"Last encoded character (before the paddings if any) is a valid base 64 alpha"的错误,本篇文章主要记录该问题的解决方案
分析
主要原因是因为改Base64字符串不是一串有效的Base64字符串
问题来了,如何验证改字符串是有效的Base64字符串?
Base64.decodeBase64(Base64之后的字符串).getBytes()
例如下面这一串错误的Base64编码后的字符串,通过Base64解码后提示:
Last encoded character (before the paddings if any) is a valid base 64 alpha
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDqZ6cUhi0E4jygfWIYrFbysWH7Dzhha+zAqNmZ159pbdP1FzQ49qokEEa7YN2bhaurDBEy8dAt2AaocrzEeZY07miJM49Dzu3+Fnawhpl2RNbHPM837THJsGlsntgNdqcSAvrzaAJFocpgnnM8dAXlbTGFvZxWBQgTPtxx3yVgkkZxzcVEnvkydAXCMEQlMY00WQynmVHc3MoNvJmtXUPL5tG+LatCUBF1SY1zWTLN2ZzlV+tm6P1InioEeVaMyZys4YjlCYCJ7q9uZqjtvUzvwiClhAtY7ZKqTOQMbKXAuWqPtXvV8gWD9lvpnF5sJuHnoSjgnX6HWdTnQD7DAgMBAAECggEAFMjlm33s3GutXqQ9AzRf9fYyY7DCeYlnzCUyWnVpjZsHeVbwaOf8ia1w5+fi3FyjIIizvfMkZk20h0+4QUGdsGzus3iTx1e2wSXALHq3FtT29z79ixy71aCv1ya9GsIjHWaSjEjfybywvKpFabh8TFestVIoPoOypmeDEe9I2+vITmXaPl7I6GTF2Si9Mav4XfSSRammA+FviFmEFvIcp2aMa0u208+JuL3ghwPqHXVEMezxFPW++N1pXqjHoPsuoK+kKqBKYJcfLbxDRCgT9VzNbsFBZJD+sG55JWEsWJ12zkklQjlebqc0vX8kYVBWqeWCRcgeGbAX+YQKBgQDyVmsVkhBwGV79fa2M3PRsOzW79HzwhY69R6vF+YNZtQWFsgCWd71zvHdBhLfsMM+l7z8bTL8VPECkIDuRf3zlOA5yH5LLdDLwa2nKfg7ZVEy3tGht0+Wnh+xBn7CUk5g6u96UywcgzZ8k8swx2WqpWJWE1nQ6q8KUGdBTYQKBgQDOsY+6vVUN+YZFtUZ5JzE1fQJUkZsUjqn80cAxlbRaZfE+CAAmJ+nNY9oteFSaOrkQHEOiOkTaNB3bAZ4xz4JKJMho6UMYNUVKq8MhhZ1mAwJ39faNIxv3tjJZ9suRXprwCs9GToj+8hW9UETeGqqBNFRnzhQsVHlEi4JxxQoowKBgDsE8vWA6kHy2+Ct7lz3cPibx0Kdi5t7JGDde8iW4G9ZIMP0bmesLZHeAaecHkt8ptJNU7zDnA2jS4xOGpoVjmcOWzTklbCSxFs3Y8IrqvMrzCZfkmrRVeiKKdBgjeFRcMZoxSC1rWUMLs7eMvN2g817TUrHtcIR6xWUoAxPTxhAoGBALTIFwdk3AS6D1ffAoGq5t56tVQUeoiTc1h+eNSltLYwXb08sCyvUk5jnIuSqKSw4faWUg2NW3Viig5ort2wOqvw2hzwkM+WoEF8U9J5FD8KONmFlxzA7ZBOmmGXe1ttXKTBP6OlwysNu0NbhYyrENgeGJqEYXQqc4+gxAWnSxlzAoGAJHBeswemA3pFRYiYCklvHsUxQvVvio6KK7Z0StxSZoaSC2z9XQWKzKacMjY0cporRh7JavdlUS1fht8JSznFA3Q55sGRzOZ2xQUuW5L1IXcbqkP1wbgl2bd2onDpd36Wq5hjpZYhwVWHwyi5WU+pvBysR43qC1YS6ubUReiz4U=
支付参数提示加密失败异常可能的原因如下:
1.原本的秘钥错误(这个可以找对接人员重新获取)
2.原本的秘钥格式错误(这个可以找对接人员重新获取,或者使用其他PKCS1格式的秘钥生成PKCS8的格式的秘钥重新进行加密)

浙公网安备 33010602011771号