Шифрование AES/GCM/NoPadding в Swift iOS (минимальное развертывание 12.1) не дает ожидаемой длины зашифрованного текстаIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Шифрование AES/GCM/NoPadding в Swift iOS (минимальное развертывание 12.1) не дает ожидаемой длины зашифрованного текста

Сообщение Anonymous »

Я реализую шифрование AES/GCM/NoPadding в Swift для iOS с минимальной целевой версией развертывания 12.1. Я пытаюсь добиться функциональности, аналогичной приведенному ниже коду Java:

Код: Выделить всё

Cipher cipherAes = initCipher(Cipher.ENCRYPT_MODE, key, iv);
byte[] encryptedMessageByte = cipherAes.doFinal(messageBytes);

byte[] cipherByte = ByteBuffer.allocate(iv.length + salt.length + encryptedMessageByte.length)
.put(iv)
.put(salt)
.put(encryptedMessageByte)
.array();
В Swift я написал следующий код:

Код: Выделить всё

let gcm = GCM(iv: iv.bytes, additionalAuthenticatedData: nil, tagLength: tagLength)
let aes = try AES(key: key.bytes, blockMode: gcm, padding: .noPadding)
let encryptedMessage = try aes.encrypt(message.bytes)
let cipherData = Data(iv) + Data(salt) + Data(encryptedMessage)
Однако длина EncryptedMessage в Swift отличается от длины EncryptedMessageByte в Java. Я ожидал, что оба дадут зашифрованный текст одинаковой длины.
Гарантия:
Я уверен, что длины ключа, iv и соли одинаковы в реализациях Java и Swift. .
Вопрос:
Нужны ли какие-либо дополнительные конфигурации или параметры для шифрования AES/GCM/NoPadding в Swift, чтобы соответствовать поведению в Java?>

Подробнее здесь: https://stackoverflow.com/questions/786 ... nt-produce
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»