[英]JAVA - Secure way of retrieving / storing username & password to a server?
[英]Secure way to use password in java file
我正在開發一個Android應用程序,通過它我可以通過GMAIL API發送郵件。
要通過GMAIL API發送郵件,我必須給他們我的ID和密碼。
GMailSender m = new GMailSender("myemailhere@gmail.com",
"mypasswordhere");
而且我知道這樣寫密碼根本不安全,因為通過提取我的apk以及
將密碼存儲在strings.xml中也不安全,因為也可以檢索xml。
我的問題是-
還有其他方法可以在我的文件中寫入密碼,以確保其安全嗎?
簡短的答案不是。 您不應將密碼存儲在代碼或任何文件中的任何位置。
即使您像有人說的那樣對它進行加密,也必須將其解密算法/密鑰存儲在代碼中的某個位置,這很容易進行逆向工程。
否,將密碼存儲在設備上並不安全。
一個小建議是始終以加密形式在char []中存儲密碼,而不是在必須存儲時將其存儲在String中。
由於字符串在Java中是不變的,如果您將密碼存儲為純文本格式,它將在內存中可用,直到垃圾回收器將其清除為止,並且由於字符串在字符串池中用於可重用性,因此很有可能將其長時間保留在內存中持續時間,從而構成安全威脅。 由於任何有權訪問內存轉儲的人都可以用明文形式找到密碼,這是另一個原因,您應該始終使用加密密碼而不是純文本密碼。 由於字符串是不可變的,因此無法更改字符串的內容,因為任何更改都會產生新的字符串。 因此,將密碼存儲在字符數組中可以明顯減輕竊取密碼的安全風險。
存儲密碼被認為是不安全的,如果可以避免,則不應這樣做。 如果出於某些原因必須考慮一些注意事項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.