2014-02-28 55 views
1

在開發人員詢問如何保護隱藏在代碼或資源中的字符串以防逆向工程時,存在很多問題。例如this,thisthis在應用程序中隱藏祕密字符串的技巧和竅門

我想找出隱藏這種信息的最佳實踐(例如「Hello,secured world!」字符串)。目標是以某種方式處理它並將其包含到應用程序中。

E.g.分裂字符串,純Java技巧,混淆,使用原生(C)代碼的優勢。

P.S.我知道我不能提供絕對的保護,但是我想盡可能地使檢索安全信息變得困難。

P.P.S當然,將數據保密的最好方法不是將它們存儲在設備上,而是使用協商令牌來提供訪問,如Reto Meier wrote。這是關於授權。

+1

討論(http://stackoverflow.com/a/20560574/730807)會給你一個安全存儲的想法 –

回答

2

某些代碼混淆器可以對源代碼中的字符串進行加密,以防止有人試圖對您的應用程序進行反向工程時讀取它們。

這裏有一些模糊處理:

但最好的解決辦法仍然沒有存儲在用戶的設備上的敏感數據。

1

您可以嘗試使用從api接收到的解碼密鑰對字符串進行編碼。

+0

你是什麼意思關於「解碼密鑰從api的收到」?你能提供任何例子嗎? AFAIK android沒有密鑰存儲。 –

+0

你不應該在你的android應用上保存密鑰,如果你使用的話,密鑰應該由ws提供。 –

+0

「如果你使用一個」是主要問題。應用程序也應該在離線模式下工作,我必須提供沒有ws的授權功能。無論如何,這是系統架構的問題。 –