android sqlcipher判断是否解密成功,Android-使用sqlcipher加密解密本地数据库-解密-读取加密数据...

packagecom.xxx.sqldecrypt;importandroid.database.Cursor;importandroid.os.Environment;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.util.Log;importnet.sqlcipher.database.SQLiteDatabase;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;public class MainActivity extendsAppCompatActivity {private String TAG = "MainActivity";private String baoName = "com.xxx.sqldecrypt";

File dbFile= new File("/data"

+Environment.getDataDirectory().getAbsolutePath()+ "/" + baoName + "/databases/");

String dbPath= "/data"

+Environment.getDataDirectory().getAbsolutePath()+ "/" + baoName + "/databases/my_database.db";//要把你Raw文件的db保存到sdcard中

String passphrase= "123456";privateSQLiteDatabase db;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initPublicDB();//初始化数据库

SQLiteDatabase.loadLibs(this);

MyDatabaseHelper dbHelper= new MyDatabaseHelper(this, "my_database.db", null, 1);

db=dbHelper.getWritableDatabase(passphrase);

Cursor cursor= db.query("book_2018", null, null, null, null, null, null);if (cursor != null) {while(cursor.moveToNext()) {

String name= cursor.getString(cursor.getColumnIndex("name"));

Log.d("TAG", "book_2018 name is " +name);

}

}

}/*** 初始化数据库*/

private voidinitPublicDB() {if (!dbFile.exists()) { //如果文件夹不存在,则创建新的文件夹

dbFile.mkdirs();

}if (!(new File(dbPath).exists())) { //判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库

Log.v(TAG, "导入数据库到/" + baoName + "/databases/");

InputStream is= getResources().openRawResource(R.raw.my_database); //要导入的数据库

FileOutputStream fos = null;try{

fos= newFileOutputStream(dbPath);byte[] buffer = new byte[1024];int count = 0;while ((count = is.read(buffer)) > 0) {

fos.write(buffer,0, count);

}

fos.flush();

fos.close();

is.close();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

}

Log.v(TAG,"initPublicDB = " + (newFile(dbPath).exists()));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值