2017-04-18 75 views
-2

我正在尋找一種在我的Cocoa應用程序中通過使用Swift加密文件的方法。 據我所見,通用框架(即CryptoSwift)只能對文本進行加密。 有沒有這個工作的具體框架,或者是否有任何種類的macOS爲此構建的方法?通過Swift和Cocoa加密文件的簡單方法?

謝謝!

+2

*通用框架(即CryptoSwift)*可以處理String和Data。 – vadian

回答

2

是的,使用CommonCrypto是一個好的開始。但我不推薦使用任何自制的實現。

做安全權很難,AES也不例外。

  • 您需要使用正確的長度(64或32個字節優先)
  • 您需要使用填充(I推薦PKCS7)的情況下,你的數據大於塊大小/密鑰大小更短的適當密鑰。 AES本身並不安全,這一點很重要。
  • 您也確實想使用初始化向量(appendend或預先添加到最後的數據流),否則攻擊者可能會從同一個密鑰中獲得多個加密流之間的相關性
  • 您還應該使用HMAC(SHA2-256及更高版本,也可在commoncrypto中使用),以防止篡改加密數據併爲您提供意想不到且可能有害的結果數據。

這個列表還在繼續,但是由於我需要創建一個實現已經有一段時間了,我的記憶在這一點上失敗了。 我強烈建議使用圍繞CommonCrypto的標準實現。

我也建議使用被寫成是(即CryptoSwift)任何不推薦,因爲代碼庫沒有得到證實,並通過像蘋果公司的框架,適當的審覈就