天天看點

通過用戶端加密保護資料原理介紹架構圖準備工作完整python 示例代碼

用戶端加密是指使用者資料在發送給遠端伺服器之前就完成加密,而加密所用的密鑰的明文隻保留在本地,進而可以保證使用者資料安全,即使資料洩漏别人也無法解密得到原始資料。

本文介紹如何基于oss的現有python sdk版本, 通過用戶端加密來保護資料。

使用者本地維護一對rsa密鑰(<code>rsa_private_key</code>和<code>rsa_public_key</code>)

每次上傳object時,随機生成一個aes256類型的對稱密鑰<code>data_key</code>,然後用<code>data_key</code>加密原始content得到encrypt_content.

用<code>rsa_public_key</code>加密<code>data_key</code>, 得到<code>encrypt_data_key</code>, 作為使用者的自定義meta放入請求頭部,和encrypt_content一起發送到oss

get object時,首先得到encrypt_content以及使用者自定義meta中的<code>encrypt_data_key</code>

使用者使用<code>rsa_private_key</code>解密<code>encrypt_data_key</code>得到<code>data_key</code>,然後用<code>data_key</code>解密encrypt_content得到原始content

通過用戶端加密保護資料原理介紹架構圖準備工作完整python 示例代碼

安裝pycrypto庫

繼續閱讀