2017-11-14 9 views
0

なぜ私は以下のコードを使用してAES暗号化を行うことはできません。SwiftCrypto AES 265

let key="12345678900987654321564738290123".bytes;//32 
    let iv="passwordpasswordwordpasswordpass".bytes;//32 
    let message="Hello text fcrypt Hello text for enfor r encryptg "; 
    print(message.count) //50 
    let data = Padding.pkcs7.add(to: message.bytes, blockSize: AES.blockSize) 
    do { 
     let aes = try AES(key: key, blockMode: .CBC(iv: iv), padding: .pkcs7) 
     let ciphertext = try aes.encrypt(data) 
     print(ciphertext) 
    } catch { 
     print(error)//dataPaddingRequired 
    } 
+1

[AES暗号化と復号化](https://stackoverflow.com/questions/27072021/aes-encrypt-and-decrypt)の可能な複製 – Ujesh

+0

どこに問題がありますか、コードは何ですか? – zaph

+1

合意。このコードの中には何も意味がありません。あなたはどの問題を解決しようとしていますか?そして、「SwiftCrypto」は何ですか? CryptoSwiftを使用する予定ですか? –

答えて

2

あなたIVはない32. AESは常にもちろん16バイトである8で割った128ビットのブロックサイズを有し、16バイトであるべきです。 CBCモードでは、ブロックサイズと同じサイズのIVを使用しますが、暗号化のモードはほとんど(すべてではありません)と同じです。

認証されたGCMモードは、デフォルトで12バイトのnonce/IVを使用し、ブロックサイズが128ビットの暗号にのみ使用できます。