2014-12-03 49 views
0

如何在iOS應用程序中將加密數據轉換爲新的加密算法/設置?我不是問如何用代碼來做到這一點,這是一個概念性問題過渡到新的加密算法

目前有成千上萬的使用我的iOS應用程序加密他們數據的人。我發現目前的加密方法存在問題。爲了解決這些問題,我需要實現一個改進的加密系統(詳見下文),並將當前用戶轉換到新系統。

我不知道如何去將用戶遷移到新的系統,而不會提示輸入自己的私有密鑰,解密和重新加密對新系統。理想情況下,這種過渡將盡可能無縫和無形。如果過渡不起作用,我擔心用戶會失去他們的數據或者感到沮喪。

舊加密方法

  • AES 256位
  • CBC模式

新的加密方法

  • AES 256位
  • CBC模式
  • 密碼與PBKDF2
  • 密碼醃製
  • 隨機IV
  • 哈希HMAC

在一個人如何能去這兩個AES加密系統之間的轉換任何想法伸展?

回答

3

當前加密密鑰是否好?如果是這樣,你可以保留它們並用新的鍵偏移功能來包裝它們。這允許用戶更改密碼而不必重新加密數據。如果密鑰太弱,則必須解密並重新加密數據。

我看到「密碼鹽醃」和「散列HMAC」,你應該考慮沿PBKDF2的線條更從用戶提供的密碼/口令創建加密密鑰。使用校準功能選擇回合數。

如果你超前的思維,你有一個版本指示器如果是的話可以只用新密鑰的方案版本加密新的數據,並具有向後兼容性。

我想知道什麼Base64編碼在不同於跨無法處理,如JSON和XML 8位字節的接口傳輸加密數據加密做。