我的應用程序需要用戶在第一次訪問時登錄,然後將其存儲在SharedPreferences中以備未來應用程序啓動時使用。在Android中安全地訪問兩個不同活動中的登錄數據
我試圖實現註銷功能,我想知道最好的方法是什麼。
截至目前,我的LoginActivity和SignOutActivity是獨立的,因爲它們出現在不同的屏幕上。理想情況下,我希望能夠以這些活動可以訪問登錄數據並保持安全的方式存儲首選項。你們會如何建議我處理這件事?
我的應用程序需要用戶在第一次訪問時登錄,然後將其存儲在SharedPreferences中以備未來應用程序啓動時使用。在Android中安全地訪問兩個不同活動中的登錄數據
我試圖實現註銷功能,我想知道最好的方法是什麼。
截至目前,我的LoginActivity和SignOutActivity是獨立的,因爲它們出現在不同的屏幕上。理想情況下,我希望能夠以這些活動可以訪問登錄數據並保持安全的方式存儲首選項。你們會如何建議我處理這件事?
要麼只是使用default SharedPreferences,要麼在兩個活動中獲取具有相同名稱的SharedPreferences;他們的重點是他們共享:)我有點擔心,你認爲SharedPreferences
實際上是安全的或孤立的;他們不是。任何擁有根權限的人can read them(儘管沒有root權限的其他應用程序默認不能)。如果你存儲密碼或類似的東西,加密它們。
SharedPreferences有3 modes:MODE_PRIVATE
,MODE_WORLD_READABLE
和MODE_WORLD_WRITEABLE
。 MODE_PRIVATE
是默認和最具限制性的,仍然允許您自由訪問首選項以在您自己的應用中進行任何活動(或者使用相同的user ID創建的任何其他應用)。
啊,好的。在閱讀文檔後,我確信自己與一個Activity綁定,但我沒有嘗試指定一個名稱並試圖以這種方式訪問它們。至於安全性,有沒有更安全的方式來存儲密碼?現在,我正在使用MD5散列。 – HenryAdamsJr 2010-12-15 19:54:32
非常確定md5已被證明不再那麼安全,使用sha1 – binnyb 2010-12-15 20:18:52
其實,sha1也被證明「不太安全」 - 至少使用sha2(256/512)。如果它只是一個本地使用的密碼,我會在醃製後使用SHA512密碼。當然,除非應用程序中的數據輸入密碼才能加密,否則任何擁有root權限的用戶都可以使用該密碼。您仍然需要爲您的應用中的任何實際數據使用某種加密策略來保護密碼。 – 2010-12-15 21:12:01