Код: Выделить всё
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();
Код: Выделить всё
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)
Гарантия:
Я уверен, что длины ключа, iv и соли одинаковы в реализациях Java и Swift. .
Вопрос:
Нужны ли какие-либо дополнительные конфигурации или параметры для шифрования AES/GCM/NoPadding в Swift, чтобы соответствовать поведению в Java?>
Подробнее здесь: https://stackoverflow.com/questions/786 ... nt-produce