在我的應用程序中,我有一個用戶輸入密碼的片段。這個片段能夠旋轉。在旋轉時,我希望使用onSaveInstanceState
和onActivityCreated
來保存和恢復大部分文本字段。通常,當我將密碼保存到磁盤時,我使用單向散列來限制如果此信息受到危害時可以完成的損害數量。但是,如果密碼只寫了一半,那麼我不能做單向散列......它需要可恢復。如何處理屏幕上的密碼輸入
所以我的問題是:在Bundle
安全的密碼?或者,如果片段被破壞,我應該簡單地銷燬這個值嗎?以下代碼對我的用戶是否有安全風險?
public override void OnSaveInstanceState(Bundle savedInstanceState)
{
base.OnSaveInstanceState(savedInstanceState);
savedInstanceState.PutString("passEditText", _passEditText.Text);
...
}
public override void OnActivityCreated(Bundle savedInstanceState)
{
base.OnActivityCreated(savedInstanceState);
if (savedInstanceState != null)
{
_passEditText.Text = savedInstanceState.GetString("passEditText", "");
...
}
}
我想去一個savedInstanceState。它將僅存儲在內存中,同樣適用於密碼字段。 – rastik
片段有一個'SaveFragmentInstanceState' ...儘可能安全?它與內存中的任何對象(包括用於部分/完整密碼的「EditText」)的**安全(或不安全)相同。不要將軟件包內容序列化到磁盤或使用'PersistableBundle'來放置安全信息.... – SushiHangover
@SushiHangover好的,完美的!加上這個答案,我會給你複選標記! – flakes