访问github链接:https://github.com/sqlcipher/android-database-sqlcipher


访问 http://sqlcipher.net/sqlcipher-for-android/ 查看官方介绍,
并从官方介绍中找出编译成功之后的zip压缩包进行下载
https://s3.amazonaws.com/sqlcipher/SQLCipher+for+Android+v3.1.0.zip


普通数据库

public interface MyDB {

    String name = "my.db";
int version = 1; public interface MyTable {
String name = "test";
String column_id = "_id";
String column_name = "name";
String create_sql = "create table " + name + "(" + column_id
+ " integer primary key autoincrement, " + column_name
+ " text)";
}
}

public class NativeOpenHelper extends SQLiteOpenHelper {

    public NativeOpenHelper(Context ctx) {
super(ctx, MyDB.name, null, MyDB.version);
} @Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(MyTable.create_sql);
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
}

public class NativeDao {

    private NativeOpenHelper mHelper;

    public NativeDao(Context ctx) {
mHelper = new NativeOpenHelper(ctx);
} public void add(String name) {
SQLiteDatabase database = mHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(MyTable.column_name, name);
database.insert(MyTable.name, null, values);
database.close();
}
}

经过加密的数据库

public interface SafeDB {

    String name = "safe.db";
int version = 1; public interface SafeTable {
String name = "test";
String column_id = "_id";
String column_name = "name";
String create_sql = "create table " + name + "(" + column_id
+ " integer primary key autoincrement, " + column_name
+ " text)";
} }

public class SafeDao {

    private SafeOpenHelper mHelper;

    public SafeDao(Context ctx) {
mHelper = new SafeOpenHelper(ctx);
} public void add(String name) {
SQLiteDatabase database = mHelper.getWritableDatabase("123456");
ContentValues values = new ContentValues();
values.put(SafeTable.column_name, name);
database.insert(SafeTable.name, null, values);
database.close();
} public void query() {
SQLiteDatabase database = mHelper.getWritableDatabase("123456");
Cursor cursor = database.query(SafeTable.name,
new String[] { SafeTable.column_name }, null, null, null, null, null); if (cursor != null) {
while (cursor.moveToNext()) {
String name = cursor.getString(0);
System.out.println(name);
} cursor.close();
} database.close();
}
}

import android.content.Context;
import com.loaderman.sqlitedemo.SafeDB.SafeTable; public class SafeDBHelper extends net.sqlcipher.database.SQLiteOpenHelper { public SafeDBHelper(Context ctx) {
super(ctx, SafeDB.name, null, SafeDB.version);
} @Override
public void onCreate(net.sqlcipher.database.SQLiteDatabase db) {
db.execSQL(SafeTable.create_sql);
} @Override
public void onUpgrade(net.sqlcipher.database.SQLiteDatabase arg0, int arg1,
int arg2) { } }

public class MainActivity extends Activity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //加载本地库
SQLiteDatabase.loadLibs(this);
} public void normalDB(View view) {
NativeDao dao = new NativeDao(this);
dao.add("hahahhaha");
} public void safeDB(View view) {
SafeDao dao = new SafeDao(this);
dao.add("hehehheheheh");
dao.query();
}
}

发现导出来的数据库文件,一个看到数据,一个看不到数据

最新文章

  1. Google Analytics 链接点击次数记录
  2. Java如何保存含有时间的日期到Oracle数据库
  3. sizeof()用法汇总【转载】
  4. Js中的this指向问题
  5. sql 语句:给 text 数据类型排序
  6. 为Web Api 2认证服务器增加令牌刷新功能
  7. 基于阿里云ECS的phpwind网站备案前如何远程访问调试?
  8. HTML5十五大新特性
  9. PHPexcel数据按模板导出
  10. cf298F:状压dp+剪枝
  11. Windows平台配置Appium+Java环境
  12. ListView排序并隔色显示
  13. thinkphp5+vue+iview商城 公众号+小程序更新版本
  14. unity 常用插件 3
  15. C语言求矩阵的逆
  16. Bootstrap3基础 form-control 圆角的输入框,光标放入后边框变色
  17. CodeMirror mode编写
  18. Andriod NDK编译的时候无法使用math.h的函数。
  19. Java虚拟机(一):JVM内存结构
  20. ASP.NET之报表--RDLC(一)---附源码

热门文章

  1. 《Linux就该这么学》day1-day2
  2. Yii2 DatePicker时间选择器的使用
  3. JAVA 从打包成jar到导入到IntelliJ IDEA使用
  4. 201871010126 王亚涛 《面向对象程序设计 (Java)》第十七周学习总结
  5. QSettings 介绍
  6. java mybaits 调用存储过程
  7. java+大文件上传解决方案
  8. Hibernate 5 开始使用指南前言
  9. 19.Python转义字符及用法
  10. selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document