Maison >développement back-end >tutoriel php >CentOS下php通过SQLCipher编译sqlite3支持数据库加密

CentOS下php通过SQLCipher编译sqlite3支持数据库加密

WBOY
WBOYoriginal
2016-07-29 09:16:081565parcourir

最近由于项目需要,要对服务器端生成的sqlite进行加密.服务器后台用的是php写的,操作系统为CentOS.开源的sqlite3预留了数据库加密接口,但是没有实现.于是在网上找到了SQLCipher,它对sqlite3未实现的加密功能进行了实现,并且可以通过重新编译PHP的sqlite3扩展,从而支持sqlite数据库加密.

具体操作,可参考官网的步骤进行,地址:https://www.zetetic.net/sqlcipher/sqlcipher-for-php/

官网的操作,系统是用的Ubuntu,在这里可以将相应命令转换成CentOS下用的即可.参照官网上的操作步骤,便可以编译成功,

编译成功后,会生成sqlite3.so,直接替换掉之前服务器php扩展中得sqlite3.so即可(替换前最好做个备份).替换完成后,重启apache服务器,

下来进行测试,测试代码:

//创建一个test.sqlite的文件,密码为12345678,参数6表示如果有就打开,没有就创建.具体的信息可参照源文件中sqlite3.c进行相关查看

$db=new Sqlite3("test.sqlite",6,"12345678");

$db->exec("create table mytest (name varchar(200) )");

$db->exec("insert into mytest (name) values ('aaaa')");

$result = $db->query('SELECT * FROM mytest');

print_f($result);

?>

如果可以打印出来结果,说明sqlite3已经重新编译成功.在此基本上算是成功了,但是仍需要检验一下,生成的数据库是否已经加密.可以将生成的test.sqlite用之前自己的一些工具打开试试,一般都会提示错误.这时候说明已经成功给sqlite加密.

顺便说一下,官网上也有对android和IOS的支持操作步骤,可以在官网上查看的到.

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了CentOS下php通过SQLCipher编译sqlite3支持数据库加密,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:php中使用引用和globalArticle suivant:memcache笔记