【问题标题】:Android password protect sqliteAndroid密码保护sqlite
【发布时间】:2015-03-18 14:58:55
【问题描述】:

我有一个 android 应用程序,我可以将我的数据库导出/导入到 sdcard。

我只是使用:

FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();

我想做的是用密码保护我导出的数据库,所以如果有人试图使用 sqlite 浏览程序打开它,他们需要输入密码。

这可以做到吗(以及如何做到)?

【问题讨论】:

  • 我不认为你可以用密码保护 sqlite 数据库,但你可以做的是使用密码加密数据。

标签: android sqlite android-sqlite


【解决方案1】:

您可以加密文件(导出的数据库)而不是保护数据库,有一些线程在谈论这个:

How to encrypt and decrypt file in Android?

Encrypting files with AES on Android

更新1:

要解密桌面上的文件,有这个线程:

Decrypting data on desktop that was encrypted on android

【讨论】:

  • @TadejVengust,有用吗?
  • 是的,谢谢,但它没有说明我如何在我的计算机上而不是在安卓上解密文件。 :(
  • 所以如果我想用密码保护我的数据库,我必须在导出时加密我的整个文件,然后用我用 java 编写的程序在我的计算机上解密它?有没有更简单的方法?因为我会非常频繁地导出和导入,这会消耗相当长的时间。
  • @TadejVengust 关于加密/解密的过程你是对的。有一些商业图书馆可以帮助您以 zetetic.net/sqlcipher 的身份进行操作。关于加密/解密的时间,你是对的,它需要很多时间。您可以使用硬件加密处理器来提高速度。
猜你喜欢
  • 2014-02-07
  • 2011-08-05
  • 1970-01-01
  • 2023-03-31
  • 2011-06-02
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多