位置: 编程技术 - 正文
推荐整理分享sqlcipher 命令行给db外部加密的实现(sql命令语句),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sqlcipher命令行密钥错误会提示吗,sql中命令,sql命令语句,sqlplus命令行执行sql文件,sqlplus 命令行,sqlplus 命令行,sqlcipher命令行密钥错误会提示吗,sqlcipher命令行密钥错误会提示吗,内容如对您有帮助,希望把文章链接给更多的朋友!
本文主要实验目的:外部用sqlcipher命令行给已有的数据库文件加密,而在Android程序中解密应用。
1. 首先 sqlcipher命令行Linux环境搭建。
view plaincopy1.解压 unzip -q sqlcipher-master.zip cd sqlcipher-master [plain] view plaincopy2.编译 ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" make
编译完就会出现一个sqlcipher的可执行文件。
说明,在ubuntu.环境下configure sqlcipher 会出现诸多error,经过反复查找问题,发现原来是编译环境缺少东西,主要缺少openssl相关库:
sudo apt-get install openssl sudo apt-get install libssl-dev
以及gcc也做了不同版本的测试。
最终configure完成后,make的过程又出现一些莫名其妙的error, 在头文件以及alter.c文件缺少* )之类的。
由于坚信源码不会有什么问题,肯定是编译过程哪里出的毛病,所以回头看看configure,发现出现 tclsh cannot found的警告。
于是 apt-get install tclsh8.5 安装完成。
删除之前编译的工程,重新configure 以及make。终于编译通过,成功生成sqlcipher可执行文件。
2. Sqlcipher使用
(当然,如果没有安装Sqlite3 ,还需要apt-get install 安装一下)
和sqlite差不多的用法
[plain] view plaincopy./sqlcipher test.db #创建一个db文件 sqlite> PRAGMA key = 'test'; #设置密码 sqlite> .e #退出三、把没加密的db文件进行加密步骤:
[sql] view plaincopy1.先用sqlite打开db文件 sqlite3 test.db[plain] view plaincopy2.把数据导成sql式 sqlite> .output test.sql sqlite> .dump sqlite> .e
[plain] view plaincopy3.加密 ./sqlcipher test2.db #创建一个新的db文件 sqlite> PRAGMA key = 'test'; #设置密码 sqlite> .read test.sql #导入数据 sqlite> .e #退出
完成,生成的test2.db文件就是一个加密过的db文件了。
以上是前期使用过程,后面讲述遇到的问题。
1、如何判断是否有加密过?
[plain] view plaincopy./sqlcipher test.db #没加密过的 sqlite> .schema CREATE TABLE XXXXXX... #显示了表的创建语句[plain] view plaincopy./sqlcipher test2.db #没加密过的 sqlite> .schema Error: file is encrypted or is not a database 对于加密过的db文件,如果不先输入密码,后续关于数据库的操作都不能执行,都会出现Error: file is encrypted or is not a database错误
3. 将加密好的文件copy至Android终端下,通过Android代码入口可以成功访问数据库文件。
android sqlcipher使用详情参见上一篇文章
版权声明:本文为博主原创文章,未经博主允许不得转载。
关于Android查询本地视频文件、获取缩略图,并且让缩略图以相同大小显示、给缩略图添加白色边框效果 最近工作中遇到要查询本地的视频文件,以GridView分页显示视频缩略图,并且对不同视频分辨率的缩略图显示相同的大小,还要对缩略图添加圆角以及白
Android通过HttpURLConnection获取JSON并进行UI更新 本例子中使用的是:HttpURLConnectionThreadHandler的组合,在newThread中通过HttpURLConnection获取JSON数据后并在Handler里对UI界面进行更新。也可以用过HttpClient,Asyn
AnalogClock 网上看过很多人写的AnalogClock,但是很多都不完整或无法运行,于是自己结合DeskClock源码,写了一个小的demo,步骤大致入如下:1、自定义View,通过Analog
标签: sql命令语句
本文链接地址:https://www.jiuchutong.com/biancheng/378075.html 转载请保留说明!上一篇:android apk 混淆方法(安卓apk混淆工具)
下一篇:关于Android查询本地视频文件、获取缩略图,并且让缩略图以相同大小显示、给缩略图添加白色边框效果(android查询数据库)
友情链接: 武汉网站建设