Swift で CryptoSwift ライブラリを使用して aes-128-ctr を使用したいのですが、結果の暗号文が長すぎます。
私の IV は 16 バイト、salt は 32 バイト、aes 平文も 32 バイトですが、結果の暗号文が 48 バイトになるのはなぜですか?
let salt: [UInt8] = Array("tkmlidnonknkqgvapjrpdcductebsozn".utf8)
let derivedKey = try PKCS5.PBKDF2(password: password, salt: salt, iterations: numberOfIterations, variant: .sha256).calculate()
let iv: [UInt8] = Array("abcdefgthksdfghj".utf8)
let aesKey: [UInt8] = Array(derivedKey[..<16])
let aes = try AES(key: aesKey, blockMode: .CTR(iv: iv))
let ciphertext = try aes.encrypt(password)
ここで、パスワードは前述の 32 バイトの平文です。
さらに、ランダムソルトを生成する方法はありますか? 見つけた
let iv: [UInt8] = AES.randomIV(AES.blockSize)
ランダムな IV を生成しますが、どうすればそのようなソルトを取得できますか?