繁体   English   中英

在运行时在Java(android)中存储敏感数据

[英]Storing sensitive data in java(android) at runtime

在运行时将敏感数据(密码等)存储在常规变量中是否安全?
我的意思是这样的:

public class MainActivity extends AppCompatActivity {
// ...
    String password; // this is my password
// ...
    public void click(View v) { // on some button click
       password = txtPassword.getText().toString(); // txtPassword is an EditText field
// ...
    }

    void someMethod() {
        Intent intent = new Intent(this, SomeActivity.class);
        intent.putExtra(password); // password needs to be passed to other activities
        startActivity(intent);
    }
// ...

}

该密码必须存储,直到用户退出应用程序为止。 几乎每个活动都需要它,因此在调用新的活动时,我必须从MainActivity传递它。

是否可以像上面的示例一样安全地存储password 如果没有,我该怎么办?

问题不在于您如何在代码内使用密码,而是如何获取密码。 例如,如果您不经过任何加密就从api检索数据,则有人可以窃取网络中的程序包并获取密码。 另一件事是,如果您将paswoord保存在共享的首选项中,并且可以访问手机和远程终端,则很容易使它变硬。 因此,如果要保存密码,请从安全的api检索密码,并在整个过程中使用加密以避免任何形式的攻击。 之后,您可以根据需要在应用程序逻辑中使用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM