2011-11-07 31 views
0
我使用Android的一個共同的加密庫

因爲在這個環節給出:http://www.androidsnippets.com/encryptdecrypt-strings保護主密碼進行加密Android中

如何加密「主密碼」,目前我硬編碼的我的「主密碼「在代碼中。恐怕任何人都可以對我的代碼進行反向工程並找到「主密碼」。由此,他們可以找到安全的琴絃。

請讓我知道是否有任何標準的解決方法。

+0

您正在使用的「代碼段」已損壞,可能無法在所有Android版本中使用,尤其是密鑰生成部分。使用密鑰派生函數從密碼派生密鑰。 –

+0

我寫的不到一個小時前:「這些都是很糟糕的例子,他們甚至沒有指定完整的算法(可能默認爲ECB,而不是你想要的文件),而且它使用平臺編碼而不是指定的編碼爲String(.getBytes())。setSeed()每次都不會生成相同的密鑰,它會將種子字節添加到隨機池中。最後,它們使用遠離標準通用語的通用語言,因此您不能什麼都看起來(「清楚」而不是「簡單」)。「 –

回答

4

你不應該硬編碼密碼,船長或沒有,除非某種形式的安全容器由系統提供的。

你必須從每個應用程序執行時間的用戶或者請求主密碼或者您也可以暫時緩存在內存中的密碼。

可以使應用程序從內存中清除密碼後的應用閒置預定義的時間。

此外,使用密鑰導出函數像PBKDF2推導從一個明文密碼加密的安全密鑰。

+0

是否有避免用戶每次輸入主密碼的解決方法? Twitter應用或Facebook或Gmail如何與OAUTH協同工作? – ssk

+1

我想沒有解決方法。密碼/密鑰應該在那裏解密。如果你不希望用戶每次都輸入它,恐怕你需要將它存儲在某個地方。關於Twitter/GMail,我不完全確定,但是AFAIK,他們給第三方應用程序提供了某種令牌,應用程序可以使用它來訪問用戶的數據。令牌不包含用戶的密碼。獲取令牌的唯一方法是要求用戶授權應用程序,最終要求用戶登錄到明顯需要密碼的Gmail/Twitter。 –