如何在iOS AWS SDK中执行客户端encryption?

是可用的么 ? 还是应该select我自己的algorithm来encryption数据并将其上传到S3存储桶? 我有要求在多平台(android / C#/ ios)中创build一个应用程序,我们必须encryption数据并将其存储到服务器端。 。 。

我已经试过这个库来encryption数据,但在iOS方面,我有不同的结果。 。 。

我使用下面的代码在客户端encryption的aws s3存储区上传了一个video。 上传aws上的内容时需要AES256密钥和md5密钥。 首先,添加荚CryptoSwift 。

现在从下面的代码生成AES256&md5密钥。

let input: Array<UInt8> = [0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9] let key: Array<UInt8> = [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00] let iv: Array<UInt8> = AES.randomIV(AES.blockSize) do { let encrypted = try AES(key: key, iv: iv, blockMode: .CBC, padding: PKCS7()).encrypt(input) let base64String: String = encrypted.toBase64()! let md5Data = encrypted.md5() let md5DataBase64 = md5Data.toBase64() print("Encrypted:\(encrypted),\n Base64String:\(base64String)") print("md5:\(md5Data),\n md5String:\(md5DataBase64)") } catch { print(error) } 

现在在aws的上传请求中添加下面两行。

uploadRequest?.sseCustomerKey = "Your base64 string of AES 256 key" uploadRequest?.sseCustomerKeyMD5 = "Your base64 string of md5"