当前博客:动态创建桌面端Sqlite加密数据库文件方案

38 次浏览【转载需注明来源】

博客作者:【快码FOF编程】

个性签名:寒窗苦读十年一朝凤舞九天

看有一些同学还不太会操作sqlite加密数据库,例如不知道怎么创建sqlite加密文件;这里给出一个方案

首先加密数据库文件并不能通过nv等数据库管理工具创建,因为加密的sqlite是不标准的方案,sqlite官方并未提供加密功能;都是一些nodejs库根据开源协议更改过来的。

这里开始教学如何动态创建sqlite加密文件,首先大家需要通过这篇博客了解如何在快码FOF中使用Sqlite加密数据库:Sqlite加密数据库方案

准备和学习好如何使用sqlite加密数据库文件后;就可以通过本篇博客使用动态创建文件了;具体的代码如下:

<!文档类型 网页类型>
<网页 语言代码="中文">
    <网页头部>
        <网页信息 文档编码="UTF8" />
        <网页信息 名称="页面视图" 关联数据="视图宽度=填充视图宽度,初始缩放值=1,最大缩放值=1,用户缩放状态=假" />
        <网页信息 关联HTTP="兼容模式" 关联数据="最高IE版本" />
        <网页标题>Document</网页标题>
    </网页头部>
    <网页主体>
        <按钮 点击回调="查询数据库()">查询数据库</按钮>
        <脚本>
            //这里执行相关的JS代码
            局部变量 数据库ID = null;
            如果 (文件操作类.文件是否存在(文件操作类.取资源目录() + "/234.db") == 假) {
                //不存在就创建数据库
                数据库ID = sqlite客户端.数据库路径(文件操作类.取资源目录() + "/234.db", "12345", "4");
                sqlite客户端.执行SQL语句(
                    (执行状态) => {
                        调试输出(执行状态);
                        //创建数据表完毕
                        sqlite客户端.执行SQL语句(
                            (执行状态) => {
                                调试输出(执行状态);
                            },
                            "INSERT INTO lorem VALUES ('12345')",
                            [],
                            数据库ID
                        );
                    },
                    "CREATE TABLE IF NOT EXISTS lorem (info TEXT)",
                    [],
                    数据库ID
                );
            }否则{
                数据库ID = sqlite客户端.数据库路径(文件操作类.取资源目录() + "/234.db", "12345");
                //存在就链接数据库
            }
            定义函数 查询数据库() {
                sqlite客户端.查询SQL语句(
                    (查询状态) => {
                        调试输出(查询状态);
                    },
                    "select * from lorem",
                    [],
                    数据库ID
                );
            }
        </脚本>
    </网页主体>
</网页>

知识点: 第三个参数为“4”时则代表创建加密数据库文件,并设置加密兼容性为4

sqlite客户端.数据库路径(文件操作类.取资源目录() + "/234.db", "12345","4");

当然也可以直接这样【不设置加密兼容性,使用默认的强度】:

sqlite客户端.数据库路径(文件操作类.取资源目录() + "/234.db", "12345");

 

参考代码项目:Sqlite加密文件创建方案.zip

动态创建桌面端Sqlite加密数据库文件方案