0
是否可用?還是應該選擇我自己的算法來加密數據並將其上傳到S3存儲桶?我需要在多平臺(android/C#/ ios)中創建一個應用程序,在該平臺中我們必須加密數據並將其存儲到服務器端。 。 。如何在iOS AWS SDK中執行客戶端加密?
我試過this庫來加密數據,但在iOS方面,我有不同的結果比別人。 。 。
是否可用?還是應該選擇我自己的算法來加密數據並將其上傳到S3存儲桶?我需要在多平臺(android/C#/ ios)中創建一個應用程序,在該平臺中我們必須加密數據並將其存儲到服務器端。 。 。如何在iOS AWS SDK中執行客戶端加密?
我試過this庫來加密數據,但在iOS方面,我有不同的結果比別人。 。 。
我使用下面的代碼在aws s3存儲桶上用客戶端加密上傳了一個視頻。在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"