热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlite数据库加锁提交_给Sqlite数据库设置密码

免费版Sqlie是不提供设置密码功能的,经过查阅资料最终找到了解决方案方案一,从sqlite源码入手,据说sqlite源码已经提供了加密的

免费版Sqlie是不提供设置密码功能的,经过查阅资料最终找到了解决方案

方案一,从sqlite源码入手,据说sqlite源码已经提供了加密的接口,只是免费版没有实现,可以参考这位仁兄的博客以了解详情:http://www.cnblogs.com/hiloves/archive/2010/04/25/1719749.html

方案二,使用System.Data.SQLite这个ADO.Net驱动写好的方法来修改密码,详情请参见这位仁兄的博客:http://www.watch-life.net/net-tip/sqlite-encrypted.html。

System.Data.SQLite中的SQLiteConnection类提供了一个ChangePassword的方法,这个方法并非来自其父类DbConnection,而是在SQLiteConnection类中定义的。不禁让人感叹,这个开源驱动做的真不错。

我写了个Winform程序以方便修改密码:

3e675fda65091021409b95b8ca9e2a2e.png

主要功能类代码如下:

/*

* author:Joey Zhao

* date:2010-12-28 22:04:46

*/

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.SQLite;

namespace SetSqlitePassword

{

class DbOperator

{

private SQLiteConnection _con;

///

/// 文件路径

///

public string DbFilePath { get; set; }

///

/// 旧密码

///

public string OriginalPassword { get; set; }

///

/// 修改密码

///

/// 新密码

public void ChangePassword(string newPassword)

{

_con = new SQLiteConnection();

_con.ConnectionString = "Data Source=" + this.DbFilePath;

if (this.OriginalPassword.Length > 0)

{

_con.ConnectionString += ";Password=" + this.OriginalPassword;

}

try

{

_con.Open();

}

catch (Exception ex)

{

throw new Exception("无法连接到数据库!"+ ex.Message);

}

_con.ChangePassword(newPassword);

_con.Close();

}

}

}



推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 本文详细介绍了 HTML 中 a 标签的 href 属性的多种用法,包括实现超链接、锚点以及调用 JavaScript 方法。通过具体的示例和解释,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 安装 IIS 5.1 并注册 .NET 2.0 后,访问页面时出现 500 错误。本文提供详细的步骤和解决方案,帮助您解决该问题。 ... [详细]
author-avatar
狗且偷生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有