2017-02-24 9 views
0

それは利用できますか?データを暗号化してS3バケットにアップロードする独自のアルゴリズムを選択する必要がありますか?私はマルチプラットフォーム(アンドロイド/ C#/ ios)でデータを暗号化してサーバー側に保管しなければならないアプリケーションを作成するという要件があります。 。 。iOS AWS SDKでクライアントサイド暗号化を実行するにはどうすればよいですか?

私はデータを暗号化するためにthisライブラリを試しましたが、iOS側では他のものとは異なる結果を示しています。 。 。

答えて

0

以下のコードを使用して、クライアント側の暗号化を使用して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のアップロードリクエストに次の2行を追加します。

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

関連する問題