Ошибка дешифрования плохое заполнение

Я пытаюсь отправить зашифрованные сообщения между двумя агентами. У меня есть строка, содержащая информацию, которую я преобразую в байты, зашифровываю ее и затем снова отправляю в строку для отправки сообщения. Сообщения получаются однако, у получающего агента я получаю следующее исключение

javax.crypto.BadPaddingException: Decryption error
at sun.security.rsa.RSAPadding.unpadV15(Unknown Source)
at sun.security.rsa.RSAPadding.unpad(Unknown Source)
at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:354)
at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:380)
at javax.crypto.Cipher.doFinal(Cipher.java:2121)
at Hi$1.action(Hi.java:72)
at jade.core.behaviours.Behaviour.actionWrapper(Behaviour.java:344)
at jade.core.Agent$ActiveLifeCycle.execute(Agent.java:1532)
at jade.core.Agent.run(Agent.java:1471)
at java.lang.Thread.run(Unknown Source)

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

Вот как я шифрую сообщение:

String msg1="Message from bob 1"; // message
MSGBOB = cipher.doFinal(msg1.getBytes("ISO-8859-1")); // encryption
msg.setContent(new String (MSGBOB,"ISO-8859-1")); // conversion to string

Вот как я расшифровал это:

mm = msg.getContent().getBytes("ISO-8859-1");// received message 
m = new String(cipher.doFinal(mm),"ISO-8859-1"); // decryption

1 ответ

Решение

Используйте кодировку base64 для вывода шифрования, не используйте new String() поскольку некоторые байтовые значения не будут корректно представлены в виде строки. поэтому при обратном обращении в байты это не будет правильным зашифрованным значением

вот что я имею в виду:

String msg1="Message from bob 1"; // message
MSGBOB = cipher.doFinal(msg1.getBytes("ISO-8859-1")); // encryption
msg.setContent(Base64.encode(MSGBOB)); // conversion to string
This is how I decrypt it :

mm = Base64.decode(msg.getContent());// received message 
m = new String(cipher.doFinal(mm),"ISO-8859-1"); // decryption
Другие вопросы по тегам