2

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 を生成しますが、どうすればそのようなソルトを取得できますか?

4

1 に答える 1