дешифрование данных с помощью AES / CBC / PKCS5Padding с использованием blackberry - PullRequest
5 голосов
/ 23 мая 2009

Я использую экземпляр шифра AES / CBC / PKCS5Padding для шифрования и дешифрования AES в Java Как я могу расшифровать данные с помощью Blackberry, зашифрованные выше в Java.

расшифровка данных с помощью AES / CBC / PKCS5Padding с использованием blackberry

Спасибо Бапите

Ответы [ 3 ]

5 голосов
/ 25 мая 2009

Я рекомендую использовать BlackBerry API (Bouncy Castle будет работать, но зачем все усложнять?).

Используйте пакет net.rim.crypto - вы используете все симметричное шифрование, поэтому вам понадобятся только стандартные ключи подписи RIM для запуска на устройстве (20 долларов и 2-3 дня, чтобы получить ) - тем временем вы можете делать все с помощью симулятора.

В основном вы захотите создать PKCS5UnformatterEngine, который оборачивает CBCDecryptorEngine, который оборачивает AESDecryptorEngine. Вероятно, обернуть все в BlockDecryptor, чтобы вы могли обрабатывать, как в InputStream. Что-то вроде (и прошло немного времени с тех пор, как я это сделал, поэтому он может не работать на 100%, как написано):

InputStream encryptedInput;  // if you have a byte[] of data, use a ByteArrayInputStream
AESKey key = new AESKey(<your key data as a byte[]>) 
InitializationVector iv = new InitializationVector(<your iv data as a byte[]>) // of course you need to know your IV since you're doing CBC encryption

BlockDecryptor decryptor = new BlockDecryptor(
   new PKCS5UnformatterEngine(
      new CBCDecryptorEngine(
         new AESDecryptorEngine(key),
         iv
      )
   )
);

// then decryptor acts as an InputStream which gives you your decrypted, unpacked data

decryptor.read(buffer); // buffer will contain decrypted, unpacked data
2 голосов
/ 24 мая 2009

Я думаю, что библиотека Bouncy Castle это поддерживает. Они также предоставляют несколько коротких руководств.

0 голосов
/ 24 мая 2009

Надувной замок имеет фантастическую библиотеку для этого. Основная проблема будет в том, как получить ключ там безопасным способом. Я обнаружил, что .NET и Java сериализуют ключи несовместимыми способами, поэтому в итоге я использовал Bouncy Castle с обеих сторон, чтобы упростить передачу ключа, как это было передано с использованием RSA, ради безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...