2013-08-04 127 views
1

如果要構建一個發送一系列電子郵件的應用程序,應用程序必須暫時存儲用戶的密碼,如果有的話,最安全的做法是什麼?如果不是,你會推薦什麼?如何安全地臨時存儲密碼?

+0

我不認爲有任何。密碼必須在內存中的某處才能使用,因此在某種程度上很容易受到攻擊。如果您正在談論磁盤存儲,則可以使用AES或Blowfish等加密算法,然後再解密。 – Jori

+0

什麼是暫時的?如果將它存儲在內部存儲上,它可以永久保留 - 您只需要在應用程序刪除之前就終止它。 – zapl

+1

您可以更改服務器或是用戶名/密碼唯一可用的身份驗證嗎?如果您可以更改服務器,請使用一次密碼來獲取訪問令牌並將其用於驗證單個郵件。訪問令牌可以從服務器端失效,而密碼不能(沒有可用性影響)。在內存中加密密碼並不會給您帶來太多好處,因爲您還需要將密鑰存儲在設備上......還可以將令牌限制爲僅發送郵件,因此重要的其他功能是安全的(更改密碼等)。 – dst

回答

1

只要你不通過互聯網發送密碼,它應該不是真的很重要。如果你想要更安全一些,你可以將密碼存儲在一個字符串中,然後在不再需要它的時候,用相同長度的字符串覆蓋它。

+0

爲什麼要特別使用相同長度的字符串?不會將字符串變量分配給任何字符串工作? – mark

+0

存儲密碼確實很重要。如果設備丟失是至關重要的,那麼竊取將獲得用戶的明文密碼,因爲它們通常由常規用戶在其他服務上使用(令人傷心的事實),另外,真實用戶應該能夠撤消其身份驗證而無需物理訪問它。 – dst

+0

我的歉意。我相信通過臨時存儲它,他意味着將它存儲在內存中,不會被持久存儲。至於覆蓋它,你將需要一個更大或相等長度的字符串。服務器最好接受密碼的散列版本,因此可以存儲密碼,而不是明文。 – bjc2406

1

您可以使用設備的共享首選項以字符串形式存儲和檢索密碼。一旦完成,該字符串可以從首選項中刪除。

+0

是不是其他應用程序能夠訪問它? – mark

+0

不是說我知道每個應用程序在存儲應用程序數據的設備中都有其自己的目錄,這應該不重要,您只是短時間存儲數據 –