
给SQLite数据库加密解密的方法:
1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用IO的方式
FileStream fs = FileCreate(“c:\\testdb“);
//方法二:用SQLiteConnection
SQLiteConnectionCreateFile(“c:\\testdb“);
创建的数据库是个0字节的文件。
2、创建加密的空sqlite数据库
//创建一个密码为password的空的sqlite数据库
SQLiteConnectionCreateFile(“c:\\test2db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=D:\\test2db“);
cnnOpen();
cnnChangePassword(“password“);
3、给未加密的数据库加密
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\testdb“);
cnnOpen();
cnnChangePassword(“password“);
4、打开加密sqlite数据库
//方法一
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2db“);
cnnSetPassword(“password“);
cnnOpen();
//方法二
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
builderDataSource = @”c:\testdb“;
builderPassword = @”password“;
SQLiteConnection cnn = new SQLiteConnection(builderConnectionString);
cnn Open();
除了用上述方法给SQLite数据库加密以外,您还可以使用专业的文件加密软件将SQLite数据库加密。
超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
超级加密3000使用起来,只要点击需要加密的文件的右键,即可轻松实现文件的加密。
解密只要双击已加密文件,输入密码即可轻松搞定。
(内存的/data/data/<package name/databases>目录中
要在Android系统中 *** 作SQLite数据库,是通过Android的核心类SQLiteDatabase类来实现的,通常情况下为了数据库升级的需要以及使用方便,我们会选择继承SQLiteOpenHelper抽像类,但是SQLiteOpenHelper会将数据库文件创建在一个固定的目录,如果你想使用已经存在的数据库文件也就是说数据库会和程序一起发布,就得通过使用SQLiteDabase的静态方法OpenOrCreateDatabase()方法来得到SQLiteDabase对象,
下面是一个具体 *** 作类:
package netmydao;
import javaioFile;
import javaioFileOutputStream;
import javaioInputStream;
import netmyjokebookR;
import androidappActivity;
import androidcontentContext;
import androiddatabasesqliteSQLiteDatabase;
public class DBHelper {
//得到SD卡路径
private final String DATABASE_PATH = androidosEnvironment
getExternalStorageDirectory()getAbsolutePath()
+ "/joke";
private final Activity activity;
//数据库名
private final String DATABASE_FILENAME;
public DBHelper(Context context) {
// TODO Auto-generated constructor stub
//这里直接给数据库名
DATABASE_FILENAME = "jokebookdb3";
activity = (Activity)context;
}
//得到 *** 作数据库的对象
public SQLiteDatabase openDatabase()
{
try
{
boolean b = false;
//得到数据库的完整路径名
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
//将数据库文件从资源文件放到合适地方(资源文件也就是数据库文件放在项目的res下的raw目录中)
//将数据库文件复制到SD卡中 File dir = new File(DATABASE_PATH);
if (!direxists())
b = dirmkdir();
//判断是否存在该文件
if (!(new File(databaseFilename))exists())
{
//不存在得到数据库输入流对象
InputStream is = activitygetResources()openRawResource(
Rrawjokebook);
//创建输出流
FileOutputStream fos = new FileOutputStream(databaseFilename);
//将数据输出
byte[] buffer = new byte[8192];
int count = 0;
while ((count = isread(buffer)) > 0)
{
foswrite(buffer, 0, count);
}
//关闭资源
fosclose();
isclose();
}
//得到SQLDatabase对象
SQLiteDatabase database = SQLiteDatabaseopenOrCreateDatabase(
databaseFilename, null);
return database;
}
catch (Exception e)
{
Systemoutprintln(egetMessage());
}
return null;
}
}
写完这个类之后,就能得到SQLiteDatabase对象,就能对数据库 *** 作了
1、要将导出文件后缀名改成,db3(因为Sqlite数据库只能识别此类数据库文件)。
2、导出步骤:DeviceFileExplorer、data、data、、databases、>、右键数据库、saveas、然后自己6可以用默认的)、Navicat新建sqlite数据库连接、连接名可以随便写一个。
3、选择现有数据库文件评论笔记,找到自己saveas时选择的路径(在此之可要现将数据库文件后经修改成。db3)、用户名和密码可以自己定义。
许多人喜欢SQLite因为它的小巧和快速
但是这些特性只是它的部分优点,
使用者还会发现SQLite是非常稳定的
出色的稳定性源于它的简单,
越简单就越不容易出错
除了上述的简单、小巧和稳定性外,
最重要的在于SQLite力争做到简单化
简单化在一个数据库引擎中可以说是一个优点,
但也可能是个缺点,
主要决定于你想要做什么
为了达到简单化,
SQLite省略了一些人们认为比较有用的特性,
例如高并发性、
严格的存取控制、
丰富的内置功能、
存储过程、复杂的SQL语言特性、
XML以及Java的扩展,
超大的万亿级别的数据测量等等
如果你需要使用上述的这些特性并且不介意它们的复杂性,
那么SQLite也许就不适合你了
SQLite没有打算作为一个企业级的数据库引擎,
也并不打算和Oracle或者PostgreSQL竞争
仅凭经验来说SQLite适用于以下场合:
当你更看中简单的管理、使用和维护数据库,
而不是那些企业级数据库提供的不计其数的复杂功能的时候,使用SQLite是一个比较明智的选择
事实也证明,
人们在许多情况下已经清楚的认识到简单就是最好的选择
以上就是关于用sqlite3加密过的数据库文件怎么解密全部的内容,包括:用sqlite3加密过的数据库文件怎么解密、sqlite 的数据库文件在什么地方、win10下不能识别sqlite数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)