Pregunta

Estoy tratando de cifrar una cadena de Java a Python, utilizando la biblioteca Castillo hinchable J2ME en el lado del cliente y M2Crypto Python en el otro.

Todo es bastante bueno, que puede descifrar correctamente, pero el relleno es el problema.

El lib M2Crypto me da (por lo que puedo decir) sólo estos esquemas de relleno: no_padding = 3 pkcs1_padding = 1 sslv23_padding = 2 pkcs1_oaep_padding = 4

Mientras que el castillo hinchable J2ME sólo proporciona: NoPadding OAEPWithAndPadding PKCS5Padding SSL3Padding

Por lo tanto, se puede utilizar NoPadding entre ambos, pero entonces las cuerdas que consiguen generan después de descifrado están llenas de personajes mezcladas.

Realmente me gustaría conseguir el relleno resuelto, pero no sé cómo convertir entre los sistemas de relleno / si eso es posible.

Por favor me ayude a resolver esto, me está matando!

¿Fue útil?

Solución

No estoy familiarizado con el castillo hinchable pero supongo que utilice algún modo RSAEngine que implementa AsymmetricBlockCipher así que debe ser capaz de utilizar PKCS1 o no?

Y también parece ser OAEP apoyo, que da los parámetros adecuados también debería trabajo.

Otros consejos

Castillo hinchable proporciona el acolchado. Si desea, por ejemplo, para hacer una RSA con relleno PKCS1 que tiene que hacer esto:

public static PKCS1Encoding create_rsa_public(RSAKeyParameters PublicKey){
    RSAEngine engine=new RSAEngine();
    PKCS1Encoding encrypto=new PKCS1Encoding(engine);
    encrypto.init(true,PublicKey);
    return encrypto;
}

Esta función le devolverá un motor RSA con PKCS1Encoding.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top