我幾乎是一個新手在加密,但我想加密一些數據並將其保存在iOS 3中的文件,因爲我不想讓用戶只是去在和編輯文件。在iOS 3中安全(相對)加密數據的正確方法是什麼?我在網上發現的大多數文件都是針對iOS 5的。正確和安全的方式來對稱加密字符串在iOS 3+
任何幫助,將不勝感激!
謝謝, 亞歷克斯
我幾乎是一個新手在加密,但我想加密一些數據並將其保存在iOS 3中的文件,因爲我不想讓用戶只是去在和編輯文件。在iOS 3中安全(相對)加密數據的正確方法是什麼?我在網上發現的大多數文件都是針對iOS 5的。正確和安全的方式來對稱加密字符串在iOS 3+
任何幫助,將不勝感激!
謝謝, 亞歷克斯
「正確」的方法是在IOS中使用Apple的Key鏈。不幸的是,this的帖子說,這對於IOs3來說並不是那麼安全。對於ios4,它工作正常。
有人可能有一個有償的解決方案,但你最終可能最終自己寫一個。你會想使用的密鑰導出函數
派生您的鑰匙從用戶提供的密碼,如PBKDF2。事實上,你需要派生兩個鍵,所以你要用兩種不同的鹽來運行兩次。
使用AES與RANDOM IV和您的派生鍵之一(該部分重要,我看過的所有示例代碼都沒有)。在您的密文前添加鹽和IV
對所有上述數據使用hmac和其他派生鍵。在此之前。
解密時,使用密鑰導出算法將密鑰重新解密爲密碼和前置鹽分,重新生成hmac,獲取生成的sha1的sha1哈希值,並單獨分析消息中的哈希值,然後驗證它們是相同的(不直接直接比較hmacs),然後使用其他派生密鑰和前置IV來解密數據。
這是一個痛苦的寫和惱人的用戶,因爲他們需要把一個單獨的密碼,但沒有辦法安全地做到這一點,否則。如果您將密鑰存儲在iphone上,則有人可以閱讀並解密數據。是的,你可以加密密鑰,但那麼你如何存儲該密鑰?
我不相信蘋果有任何這樣的體面的目標c綁定,所以你需要使用常見的crypto c API。其記錄的here。看起來沒有用處的客觀c API被記錄在案here