sqlite3数据库加密之后验证问题

cook_fish 2012-12-12 09:35:14
实现了数据库的加密接口函数,现在是用任何第三方软件都打不开,在linux下用命令行也打不开。我说的打不开是即使输入了正确的密码也不行。但是可以用程序测试,能打开这个加密的数据库,然后进行正常操作。我用的版本是3.7.13 请问是不是数据库加密实现之后是不是根本就不能通过别的方式打开,只能在程序里面测试?还是有什么别的方法?求高手指教。 急..
...全文
422 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cook_fish 2012-12-21
  • 打赏
  • 举报
回复
至于加密后别的不能解密的问题 因为每个你编译出来的sqlite3.dll的加密解密函数是不一样的 所以你加密的数据库 必须得对应你那个dll才能解密 这个怎么说?我加密的话只调用了一次加密函数,再解密的时候输入的密码,就是这次加密时候的,但用第三方软件还是打不开,只能实现在代码中加密,用代码匹配密码方能打开,在命令行加密的话只能在命令行用pragma key = password去打开。
cook_fish 2012-12-21
  • 打赏
  • 举报
回复
引用 7 楼 li875590079 的回复:
引用 6 楼 cook_fish 的回复: pragma key 和pragma rekey 是sqlite3里面的特殊命令。不在shell.c里面。 你在命令行输入这个指令会自动调用你的sqlite3_key这个函数的。 为什么sqlite_key()在sqlite.c么有定义,这个要怎么实现它的定义呢,我知道免费版的,是不提供加密的功能的,请问你是怎么解决的,不是像你那样在命令……
官方提供的sqlite数据库源码是不带加密功能的,这个sqlite3_key函数只是提供了一个加密接口,你需要实现这一系列的函数,就能实现加密功能。 我的源码是经过修改之后实现加密的。不是你简单的调用sqlite3_key()就可以加密码。 如sryan说的,实现加密接口函数之后,还需要在编译时候提供SQLITE_HAS_CODEC这个宏进行编译,这样才会把你加密部分编译进源码,才能调用你的加密函数。
布鲁克斯南南 2012-12-20
  • 打赏
  • 举报
回复
引用 6 楼 cook_fish 的回复:
pragma key 和pragma rekey 是sqlite3里面的特殊命令。不在shell.c里面。 你在命令行输入这个指令会自动调用你的sqlite3_key这个函数的。




为什么sqlite_key()在sqlite.c么有定义,这个要怎么实现它的定义呢,我知道免费版的,是不提供加密的功能的,请问你是怎么解决的,不是像你那样在命令行下输入上面的两个命令就完事了!
碎炎 2012-12-20
  • 打赏
  • 举报
回复
引用 10 楼 li875590079 的回复:
引用 8 楼 sryan 的回复:引用 7 楼 li875590079 的回复:引用 6 楼 cook_fish 的回复:pragma key 和pragma rekey 是sqlite3里面的特殊命令。不在shell.c里面。 你在命令行输入这个指令会自动调用你的sqlite3_key这个函数的。 为什么sqlite_key()在sqlite.c么有定义,……
wxwidget是跨平台的 所以wxsqlite也是的
碎炎 2012-12-20
  • 打赏
  • 举报
回复
引用 10 楼 li875590079 的回复:
引用 8 楼 sryan 的回复:引用 7 楼 li875590079 的回复:引用 6 楼 cook_fish 的回复:pragma key 和pragma rekey 是sqlite3里面的特殊命令。不在shell.c里面。 你在命令行输入这个指令会自动调用你的sqlite3_key这个函数的。 为什么sqlite_key()在sqlite.c么有定义,……
只取加密模块就行
布鲁克斯南南 2012-12-20
  • 打赏
  • 举报
回复
引用 8 楼 sryan 的回复:
引用 7 楼 li875590079 的回复:引用 6 楼 cook_fish 的回复:pragma key 和pragma rekey 是sqlite3里面的特殊命令。不在shell.c里面。 你在命令行输入这个指令会自动调用你的sqlite3_key这个函数的。 为什么sqlite_key()在sqlite.c么有定义,这个要怎么实现它的定义呢,我知道免……
我是在linux下用的,wxsqlite有linux下的版本吗???
碎炎 2012-12-20
  • 打赏
  • 举报
回复
wxsqlite挺不错的 我前几天刚用
碎炎 2012-12-20
  • 打赏
  • 举报
回复
引用 7 楼 li875590079 的回复:
引用 6 楼 cook_fish 的回复:pragma key 和pragma rekey 是sqlite3里面的特殊命令。不在shell.c里面。 你在命令行输入这个指令会自动调用你的sqlite3_key这个函数的。 为什么sqlite_key()在sqlite.c么有定义,这个要怎么实现它的定义呢,我知道免费版的,是不提供加密的功能的,请问你是怎么解决……
头文件加一个什么什么CODEC的宏就可以了 至于加密后别的不能解密的问题 因为每个你编译出来的sqlite3.dll的加密解密函数是不一样的 所以你加密的数据库 必须得对应你那个dll才能解密
cook_fish 2012-12-13
  • 打赏
  • 举报
回复
wxsqlite加密后如何验证使用呢?能不能发一些指导性的文字,包括编译使用方面
cook_fish 2012-12-13
  • 打赏
  • 举报
回复
pragma key 和pragma rekey 是sqlite3里面的特殊命令。不在shell.c里面。 你在命令行输入这个指令会自动调用你的sqlite3_key这个函数的。
subool 2012-12-13
  • 打赏
  • 举报
回复
无须自己实现sqlite加密, wxsqlite已经很好用了, 包括加密
布鲁克斯南南 2012-12-13
  • 打赏
  • 举报
回复
引用 3 楼 cook_fish 的回复:
sqlite3命令行已经提供了验证密码的接口: pragma rekey = password; 弄了好久才发现。本来还想修改shell.c的源码,但是在shell.c中不管我在哪如何调用sqlite3_key()和sqlite_rekey()之后执行的sqlite3语句都会报错,不知道是什么原因?还希望大家能帮下我。
你的shell.c里有这两个函数??? 我的怎么没有?
布鲁克斯南南 2012-12-13
  • 打赏
  • 举报
回复
引用 1 楼 subool 的回复:
无须自己实现sqlite加密, wxsqlite已经很好用了, 包括加密
大牛,你是不是都已经实现好了,我和帖主,有同样的疑问啊!
cook_fish 2012-12-13
  • 打赏
  • 举报
回复
sqlite3命令行已经提供了验证密码的接口: pragma rekey = password; 弄了好久才发现。本来还想修改shell.c的源码,但是在shell.c中不管我在哪如何调用sqlite3_key()和sqlite_rekey()之后执行的sqlite3语句都会报错,不知道是什么原因?还希望大家能帮下我。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧