Как зашифровать строку, используя AES 256, режим ECB с отступом pkcs5? - PullRequest
0 голосов
/ 23 января 2019

Я новичок в iOS, и у меня нет идеи о том, как зашифровать строку с использованием AES 256 с режимом ECB и заполнением. Я смотрю на cryptoswift, но получаю ошибку длины ключа, у меня есть 64-символьный ключ, и яне может зашифровать

func aes_Encrypt(AES_KEY: String) -> String {
    var result = ""
    do {
        let key: [UInt8] = Array(AES_KEY.utf8) as [UInt8]
        let aes = try! AES(key: key, blockMode: ECB() as BlockMode, padding: .pkcs5) 
        let encrypted = try aes.encrypt(Array(self.utf8))
        result = encrypted.toHexString()
        print("AES Encryption Result: \(result)")
    } catch {
        print("Error: \(error)")
    }
    return result
}

1 Ответ

0 голосов
/ 23 января 2019

64 символа × 8 бит = 512 бит, а не 256, требуемых для AES256.

Если передаваемая вами строка является шестнадцатеричным представлением ключа (например, "1234abcd…"), вам потребуетсяразбейте его на последовательность двухсимвольных подстрок и используйте UInt8(…, radix:16) для анализа каждой из них как шестнадцатеричной.

...