如何在iOS AWS SDK中执行客户端加密



可用吗?还是我应该选择自己的算法来加密数据并将其上传到S3-Bucket?我需要在多平台(Android/c#/ios)中创建一个应用程序,在该应用程序中,我们必须对数据进行加密并将其存储到服务器端。。。

我已经尝试过此库来加密数据,但是在iOS方面,我的结果与其他库不同。。。

我在AWS S3存储桶上上传了一个使用以下代码的客户端加密的视频。当要在AWS上上传内容时,我们需要AES256密钥和MD5密钥。首先,添加pod 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)
    }

现在,在您的上传请求中添加以下两行。

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

最新更新