Вопрос

Я пытаюсь зашифровать строку от Java до Python, используя библиотечный бодрый замок J2ME на стороне клиента и Python M2Crypto с другой.

Все довольно хорошо, я могу расшифровать это должным образом, но заполнение - это проблема.

M2Crypto LIB дает мне (насколько я могу судить) только эти схемы накладки: no_padding = 3 pkcs1_padding = 1 sslv23_padding = 2 pkcs1_oaep_padding = 4

В то время как Bouncy Castle J2me предоставляет: Nopadding oaepwithandpadding pkcs5padding ssl3padding

Таким образом, я могу использовать NoPadding между обоими, но затем строки, которые генерируются после дешифрования, заполнены беспорядочными символами.

Я бы очень хотел разобраться с прокладкой, но я не знаю, как конвертировать между схемами прокладки / если это даже возможно.

Пожалуйста, помогите мне понять это, это убивает меня!

Это было полезно?

Решение

Я не знаком с бодрым замком, но я думаю, вы как -то используете RSAEngine что реализует AsymmetricBlockCipher Таким образом, вы должны иметь возможность использовать PKCS1 или нет?

И там, кажется, есть OAEP Поддержка, которая, учитывая правильные параметры, также должна работать.

Другие советы

Бодрый замок обеспечивает заполнение. Если вы хотите, например, сделать RSA с накладной PKCS1, вы должны сделать это:

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

Эта функция вернет вам двигатель RSA с PKCS1ENCODING.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top