Problemas com RSA (BadPaddingException)

by Andres Amador / from beautifuldecay.com

Tive alguns problemas em um projeto próprio com a criptografia RSA, pois o texto criptografado em um APP Android não estava sendo corretamente descriptografado no webservice, mesmo com as chaves pública e privada estando corretas. A exception (BadPaddingException) informava sobre um problema de “padding”. O que descobri e minhas leituras sobre o tema é que aparentemente a inicialização no Cipher feita pela JVM de um sistema desktop/web é diferente da JVM do Android (Dalvik/ART). O padding inserido em um sistema durante a inicialização não estava sendo equivalente ao outro.

A solução que encontrei foi mudar o provider do Cipher no aplicativo Android para “RSA/ECB/PKCS1Padding”, que é um provider específico para a encriptação e mantive o do Webservice para decriptação com o tradicional provider “RSA”.


Cipher.getInstance("RSA/ECB/PKCS1Padding")

view raw

Cipher.java

hosted with ❤ by GitHub

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s