La situaciónCifrado RSA en Java: ¿Problemas con la plataforma cruzada?
Estoy trabajando con el cifrado RSA en Java. Intento cifrar datos en un teléfono desarrollador HTC Saphire (32B) equipado con Android 2.2 de Cyanogenmod y luego descifrar dichos datos en un servidor de 64 bits con Mandriva Linux 2010. Estoy usando la misma llave pública, par de clave privada en ambas máquinas , puede encriptar/descifrar datos en el teléfono Android, puede encriptar/descifrar datos en el servidor Linux, pero no puedo encriptar los datos en el teléfono y luego descifrarlos en el servidor. Tengo malas excepciones de relleno. Confirmé que el teléfono está enviando correctamente los datos y el servidor los está analizando correctamente. Como tal, no puedo entender por qué el descifrado falla. Puede alguien ayudarme con esto? Quizás el algoritmo RSA en Java tiene alguna suposición subyacente sobre el tamaño de la palabra?
Más información:
- Mi biblioteca de cifrado/descifrado se basa en la guía encontró here.
- Mi clave de cifrado es de 2048 bits de longitud, pero veo un comportamiento similar con diferentes tamaños de clave.
- He empaquetado mi código de cifrado/descifrado RSA en un archivo jar. Fue compilado a través de Eclipse en la máquina del servidor.
- El programa que utiliza la biblioteca de cifrado en el teléfono Android utiliza la biblioteca anterior. También fue construido usando Eclipse.
- El programa del servidor se creó utilizando Netbeans (ya que era más fácil hacerlo en ese momento).
Otras preguntas
- ¿Hay otros algoritmos de cifrado de clave pública/bibliotecas libres disponibles para Java? ¿Funcionan multiplataforma? ¿Qué rendimiento uno esperaría de ellos? Etc., etc. He investigado esto y no he encontrado mucho; tal vez estoy buscando con las palabras clave incorrectas.
¡Uf! Creo que eso es todo. ¡Gracias por tu ayuda con anticipación!
Algún algoritmo debe funcionar multiplataforma, el problema está en su código (o configuración) muy probablemente – bestsss
Config, ¿eh? ¿Qué es configurable sobre RSA? ¿Cómo haría esto en Java? ¿Podría proporcionar un enlace a un tutorial? No quiero tomar su tiempo, pero tener un experto (o persona con experiencia) como usted me señala en la dirección correcta realmente me hará la vida más fácil. –
(sry se escapó para la cena) Me refiero a la configuración como clave pública/privada, el mal relleno es causado principalmente por un par de claves mal intercambiadas. Si está seguro y, por alguna razón, Android no es compatible con el mismo relleno que el sol. puede probar http://www.bouncycastle.org/ btw, ¿cómo encripta/descifra datos en el mismo dispositivo/máquina? – bestsss