Secure-Storage
就地寫入加密數據
是否有充分的理由不就地寫入加密數據?
來自iOS 10 安全指南:
好吧,在這種特殊情況下,正在使用 AES-GCM。由於 GCM 將身份驗證標籤添加到輸出流,因此輸出流的大小大於輸入流的大小。就地寫入數據需要一定量的緩衝,如果輸入流足夠大,這可能會變得很困難。
更不用說這有助於防止加密過程中的電源故障/崩潰。想像一下,如果加密過程在某個時候停止。當系統恢復時,它如何知道從哪裡重新開始加密?使用單獨的加密流,恢復過程很容易 - 只需從頭開始。