2013-03-19 48 views
1

我從來沒有什麼關係數據加密,所以我開始work with this code恩解密的NSData與RNCryptManager在CoreData

我做了什麼,它的工作原理沒事,如果我加密一些NSData並直接解密NSData 。但是很難理解這個代碼是如何工作的。任何人都可以幫助我會很好。

我將存儲在CoreData一些加密NSDataCoreData加載它進行解密,但如果我這樣做,我得到這個輸出:

2013年3月19日15:31:07.197恩-Decrypt + CoreData [2603:c07]在+ [RNCryptManager AESKeyForPassword:salt:] /use/main/desktop/En-Decrypt+CoreData/En-Decrypt+CoreData/RNCryptManager.m:110 2013-03- 19 15:31:07.198 En-Decrypt + CoreData [2603:c07]由於未捕獲異常'NSInternalInconsistencyException'而終止應用程序,原因:'無法爲密碼創建AES密鑰:-1'

我已經上傳了sample xcode project here

感謝您的幫助

+0

錯誤消息表明您至少爲您調用的方法的參數之一提供垃圾。你需要弄清楚爲什麼。你沒有提供足夠的信息給其他人找出原因。也許你沒有存儲價值?也許你沒有正確閱讀它?也許你讀過它,但在嘗試調用此方法之前以某種方式損壞了它?它可以是任何數量的東西。 – 2013-03-19 16:06:02

+0

請注意,RNCryptManager已被RNCryptor取代,RNCryptor提供了額外的安全保護。它會自動爲你管理IV和Salt。 https://github.com/rnapier/RNCryptor – 2013-03-19 18:15:08

回答

1

在你需要保存saltiv值的數據。這是解密所必需的。 所以修改你的數據模型:
enter image description here

和保存saltiv具有加密數據。

+0

非常感謝,它的工作 – SomethingIsCrazy 2013-03-19 17:12:26

+0

如果有幫助,你可以接受一個答案 – 2013-03-19 18:17:54