2017-05-04 107 views
1

我即將使用SecKeychainAddGenericPassword將一堆受保護的信息存儲在我的i​​os-app中,並且我需要的只是一個'安全的'鍵值存儲區。 「安全」,我的意思是信息不應該很容易被篡改。我被困在這裏需要的兩個不同的領域,即accountNameserviceNameSecKeychainAddGenericPassword中的serviceName和accountName之間的功能區別

https://developer.apple.com/reference/security/1398366-seckeychainaddgenericpassword的文檔中,我無法弄清楚這兩個字符串之間是否會有功能差異。該應用程序應該用於單個用戶,並且應該可以通過應用程序訪問該信息。我應該把什麼放在accountNameserviceName?如果我換了兩個,會有什麼改變嗎?

注:我明白兩者之間的概念上的差異,但如果我沒有用戶名,應該如何(可以)我拆我的「鑰匙」,填補了兩者accountNameserviceName

+0

你確定'SecKeychainAddGenericPassword'在iOS上可用嗎?我認爲這是剛剛添加到macOS。我以爲你還是必須在iOS上使用'SecItemAdd'(這很痛苦,我強烈建議使用包裝器,而不是手動編寫代碼)。 –

+0

哦..是的,你是對的,它只適用於macOS,我將不得不使用SecItemAdd。無論如何感謝您的回答! – adarsh

回答

2

這些只是現場標籤。對於你所描述的用途,這與你如何使用它們無關。你只需要知道你做了什麼,這樣你就可以搜索數據。沒有要求您甚至使用兩者。

請注意,唯一加密的是「數據」(在這種情況下是密碼)。您放入這些字段的任何內容都是可以搜索的元數據。我經常把帳戶和密碼放在一起,並將其作爲數據存儲,以便它們都被加密。然後,我只用一個硬編碼的「服務」來查找記錄。如果您有多個帳戶,則將數據存儲在帳戶字段中最有用。