我全力以赴process to encrypt database of android: 设置>安全>加密手机
然后我尝试获取我的Android数据库
$ adb shell
$ run-as com.your.package cat /data/data/com.your.package/databases/your_db > /storage/sdcard0/Download/your.db
结果是我的所有数据都没有加密....
我做了另一个测试并重新安装了我的应用程序,再次获取我的数据库,所有数据都保持未加密状态......
我需要做什么,加密我的数据库(没有代码),以及我如何加密检查这些数据?
--- ---编辑
如果我使用此代码测试加密,我会返回" true",但我仍然可以访问.db并阅读所有信息......
@SuppressLint("NewApi")
public static boolean isEncrypted(Context context) {
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context
.getSystemService(Context.DEVICE_POLICY_SERVICE);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
int status = devicePolicyManager.getStorageEncryptionStatus();
if (DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE == status) {
return true;
}
}
return false;
}
答案 0 :(得分:1)
设备加密后,将自动生成所有用户创建的数据 在将其提交到磁盘之前加密,并且所有内容都自动读取 在将数据返回给调用进程之前解密数据。
从你提到的关于你的问题的文章中:
所以即使有人从手机上取下所有数据,也要避开 锁定屏幕,没有你的密钥,数据将毫无用处。
因此,您的数据在手机上受到加密并受到锁定保护(例如PIN锁定)。
当您通过USB将设备连接到计算机时,只要您正确输入了PIN,操作就会被认为是安全的,您的数据会在发送到您的计算机之前被解密。