如何在手机上搭建加密数据库

如何在手机上搭建加密数据库,第1张

用SQLCipher进行数据库加密。

SQLite目前已经是比较流行的数据存储 *** 作的API了。Android和iOS系统提供的API中 *** 作数据库默认均采用了SQLite方案。而SQLCipher是基于SQLite的加密数据库存取方案,集成相对比较快捷而且透明,在一定程度上保证了数据的安全。

代码设置:

如果你用的是系统sqlite3的API,则代码基本不用变,因为SQLCipher是基于系统的sqlite3API扩展的;

如果你用的是FMDB,更无需担心,因为FMDB是封装的系统sqlite3API;

唯一需要做的,就是初始化打开数据库文件sqlite3_open之后,紧跟着执行sqlite3_key设置数据库加密的密钥,于是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBase.m源码中拷贝这个方法的逻辑,方便调用

1、可以通过手机软件QQ通讯录,将手机号码备份到云端。以安卓手机为例,为您介绍备份方法:首先在手机功能表界面打开QQ通讯录软件。点击个人中心,开始备份。

2、点击仅备份变化的联系人,您也可以选择备份全部联系人。输入QQ通讯录账号密码,登陆成功就会提示备份成功了。这样您的联系人号码就全部被分到了云端。

写过一些取电话号码的东西,没有出现过乱码。你看看是不是字段之类的取的问题。

下面是取电话号码的一段代码,不会出乱码。你参考一下吧

//得到ContentResolver对象

ContentResolver cr = getContentResolver()

//取得电话本中开始一项的光标

Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null)

while (cursor.moveToNext())

{

// 取得联系人名字

int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME)

String name = cursor.getString(nameFieldColumnIndex)

string += (name)

// 取得联系人ID

String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID))

Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "

+ contactId, null, null)

// 取得电话号码(可能存在多个号码)

while (phone.moveToNext())

{

String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))

string += (":" + strPhoneNumber)

}

string += "\n"

phone.close()

}

cursor.close()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9988631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存