2017-01-31 8 views
1

В моей серверной стороне они создали зашифрованное сообщение с использованием алгоритма AES с 16 ключа байт с этим фрагментом кодаAES Java шифрование 16 байт ключ дешифрования с Objective-C

Key: h7Ui63Mzqj61G87j

public static String encrypt(String data, byte[] secretKey) throws Exception { 
    Key key = generateKey(secretKey); 
    Cipher c = Cipher.getInstance(ALGORITHM); 
    c.init(Cipher.ENCRYPT_MODE, key); 
    byte[] encVal = c.doFinal(data.getBytes()); 
    String encryptedValue = new BASE64Encoder().encode(encVal); 
    if (logger.isDebugEnabled()) { 
     logger.debug(String.format("DataToEncrypt: %s, encryptedValue: %s", data, encryptedValue)); 
    } 
    return encryptedValue; 
} 

Но я не могу расшифровать сообщение с помощью того же ключа, используя алгоритм AES.

Я упоминал, что многие ссылки и блоги ничего не помогли мне, может ли кто-нибудь помочь мне решить эту проблему.

+0

Ваш ключ длиной 16 символов. Как преобразовать его в 32 байта? – Codo

+0

Итак, теперь у нас есть 16 * символов * против 16 * байтов *. Как вы конвертируете из символов в байты? – Codo

+1

И, пожалуйста, покажите код Objective-C, который у вас есть. И скажите нам, что означает «я не могу расшифровать сообщение». Разве это не компилируется? Это крушение? Выдает ли он неправильный результат? Какой вклад, каков ожидаемый результат и каков эффективный результат? – Codo

ответ

1

Пожалуйста, обратитесь это ниже ссылку,

https://github.com/callmewhy/why-encrypt

Надежда его помощь полный.

+0

Да, спасибо вам, что он работает отлично. – ASV

+0

Поместите соответствующую информацию в случае, если ссылка когда-либо гниет. – Jamal

+0

Указанный код использует режим ECB. Не используйте режим ECB, он небезопасен, см. [Режим ECB] (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_Codebook_.28ECB.29), прокрутите вниз до пингвина. Вместо этого используйте режим CBC со случайным IV, просто префикс зашифрованных данных с помощью IV для использования в расшифровке, он не обязательно должен быть секретным. – zaph