Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何防止数据库和共享首选项被黑客攻击_Android_Sql_Encryption_Sharedpreferences - Fatal编程技术网

Android 如何防止数据库和共享首选项被黑客攻击

Android 如何防止数据库和共享首选项被黑客攻击,android,sql,encryption,sharedpreferences,Android,Sql,Encryption,Sharedpreferences,我正在开发一个密码管理应用程序,它将您的帐户及其密码存储在数据库中,并将应用程序的密码存储在共享首选项中,以便其他人无法访问您的帐户 保护数据的最佳方式是什么 假设我创建了一个加密数据的方法,并创建了一个解密数据的方法,以便普通用户可以读取数据 如果一个设备是根设备,黑客是否可以将应用程序数据移动到具有相同应用程序的另一个设备,以便他可以读取数据库,即使该数据库已加密,因为另一个设备中的应用程序具有解密方法 是否存在后门方法,以便黑客远程将数据传输到另一个设备,并由应用程序本身对数据进行解密 如

我正在开发一个密码管理应用程序,它将您的帐户及其密码存储在数据库中,并将应用程序的密码存储在共享首选项中,以便其他人无法访问您的帐户

保护数据的最佳方式是什么 假设我创建了一个加密数据的方法,并创建了一个解密数据的方法,以便普通用户可以读取数据

如果一个设备是根设备,黑客是否可以将应用程序数据移动到具有相同应用程序的另一个设备,以便他可以读取数据库,即使该数据库已加密,因为另一个设备中的应用程序具有解密方法

是否存在后门方法,以便黑客远程将数据传输到另一个设备,并由应用程序本身对数据进行解密

如果加密方法包含生成随机加密密钥并将其作为下一行存储在密码字符串中(密码中不允许使用多行),这是一种安全的方法,因为黑客会攻击完全包含加密密钥的密码字符串,然后使用应用程序对其进行解密

假设我创建了一个单独的加密密钥……它应该永久存储在某个地方……但是如果黑客可以访问它,他可以通过应用程序本身破解加密吗?如果是,加密密钥是否可以存储在用户无法访问的地方


注意:使加密密钥与设备的IMEI相关不是一个解决方案,因为我打算使应用程序在设备之间同步数据,因此许多设备可以访问同一帐户

如果有人拥有root,他们拥有一切。从根本上说,他们可以假装是用户,你的应用程序会为他们解密内容,然后他们就会得到结果


使用主密码作为基础对敏感内容进行加密意味着它对某些类型的攻击是安全的——但如果攻击者可以拥有一个软件来监视该密码条目,他们仍然可以窃取它。但它确实可以防止某些部分的攻击,因为当软件处于“冷态”(即密码不存在或未加载)时,受保护的数据是安全的(如果加密是可靠的)。

如果有人拥有root,他们拥有一切。从根本上说,他们可以假装是用户,你的应用程序会为他们解密内容,然后他们就会得到结果


使用主密码作为基础对敏感内容进行加密意味着它对某些类型的攻击是安全的——但如果攻击者可以拥有一个软件来监视该密码条目,他们仍然可以窃取它。但它确实可以防止某些部分的攻击,因为当软件处于“冷态”(即密码不在或未加载)时,受保护的数据是安全的(如果加密是可靠的)。

有一个外部库,可以很好地加密使用Facebook隐藏的共享预处理数据


有一个外部库,可以很好地加密使用Facebook隐藏的共享Pref-dat


我可以让应用程序阻止在根设备中运行,这样黑客就无法解密数据吗?我可以让应用程序阻止在根设备中运行,这样黑客就无法解密数据吗?您试图以错误的方式解决这个问题。从用户密码派生加密密钥,并使用该密钥加密数据。如果没有用户密码,并且加密正确,则无法访问数据。您试图以错误的方式解决此问题。从用户密码派生加密密钥,并使用该密钥加密数据。如果没有用户密码,并且加密正确,则无法访问数据。