Delphi FireDAC 下的 Sqlite(六) 加密

主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单.

const
  dbPath = 'C:\Temp\SQLiteTest.sdb';

{建立加密数据库, 密码是 mm123}procedure TForm1.FormCreate(Sender: TObject);
const
  strTable = 'CREATE TABLE MyTable(Id integer, Name string(10), Age byte)'; //Id, Name, Age 三个字段begin
  if FileExists(dbPath) then DeleteFile(dbPath);

  FDConnection1.Params.Add('DriverID=SQLite');
  FDConnection1.Params.Add('Database=' + dbPath);
  FDConnection1.Params.Add('Password=mm123'); //相同与 Password=aes-256:mm123; aes-256 是默认的加密算法;  //还有: aes-128,aes-192,aes-256, aes-ctr-128,aes-ctr-192,aes-ctr-256, aes-ecb-128,aes-ecb-192,aes-ecb-256
  //建表并输入测试数据
  FDConnection1.ExecSQL(strTable);
  FDConnection1.ExecSQL('INSERT INTO MyTable(Id, Name, Age) VALUES(:1, :2, :3)', [1, 'abc', 23]);
end;

{打开有密码的数据库}procedure TForm1.Button1Click(Sender: TObject);
begin
  FDConnection1.Params.Clear;
  FDConnection1.Connected := False;

  FDConnection1.Params.Add('DriverID=SQLite');
  FDConnection1.Params.Add('Database=' + dbPath);
  FDConnection1.Params.Add('Password=mm123');
  FDConnection1.Connected := True;
  FDQuery1.Open('SELECT * FROM MyTable');
end;

{修改密码}procedure TForm1.Button2Click(Sender: TObject);
begin
  FDConnection1.Params.Clear;
  FDConnection1.Connected := False;

  FDConnection1.Params.Add('DriverID=SQLite');
  FDConnection1.Params.Add('Database=' + dbPath);
  FDConnection1.Params.Add('Password=mm123');
  FDConnection1.Params.Add('NewPassword=mm12345'); //新密码, 密码为空表示取消密码
  FDConnection1.Connected := True;
  FDConnection1.Connected := False;
end;

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Delphi/

FireDAC 还提供了一个专用的加密控件 TFDSQLiteSecurity, 因为上面的方法足够方便了, 所以用处不大.

FDSQLiteSecurity1.DriverLink := FDPhysSQLiteDriverLink1;  //TFDSQLiteSecurity 和 FireDAC.Phys.SQLite 里的其他四个控件, 使用前都要先指定这个属性
FDSQLiteSecurity1.Database := dbPath;    //指定数据库路径
FDSQLiteSecurity1.Password := 'mm111';   //密码
FDSQLiteSecurity1.ToPassword := 'mm222'; //新密码
FDSQLiteSecurity1.SetPassword;           //设置密码
FDSQLiteSecurity1.ChangePassword;        //修改密码
FDSQLiteSecurity1.RemovePassword;        //移除密码

帮助里面说: 通过 FireDAC 加密的 SQLite 与其它并不兼容.

Author:cnblogs 万一

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索密码
, 加密
, cryptojs aes
, ae
, aes
, add
, aes256
, aes256 padding
, Connected
, password
, params
aes128加密解密
firedac sqlite、delphi firedac、delphi firedac 教程、delphi firedac mssql、delphi firedac 用法,以便于您获取更多的相关知识。

时间: 2024-12-02 05:40:52

Delphi FireDAC 下的 Sqlite(六) 加密的相关文章

Delphi FireDAC 下的 Sqlite(九) 关于排序

SQLite 内部是按二进制排序, 可以支持 ANSI; FrieDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序. 下面的例子, 测试了这两种排序的不同. 可把下面代码直接贴在空白窗体上, 以快速完成窗体设计: object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 297 Height = 199 Align = alLeft DataSource = DataSour

Delphi FireDAC 下的 Sqlite(二) 第一个例子

为了方便测试, 我把官方提供的 C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\data\FDDemo.sdb 复制了一份到 C:\Temp\FDDemo.sdb. {新建一个 VCL Forms Application, 然后添加如下控件(建议按 Ctrl + . 后用键盘输入添加):} TFDPhysSQLiteDriverLink // 用于驱动自动连接; 不同数据库各对应一个: TFDPhys****DriverLink

Delphi FireDAC 下的 Sqlite(一) 前言

很长时间没静下心来写博客了, 现在回来, 是 Delphi 不断地进步让我感动.振奋. Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了. 让我最高兴地是 FireDAC 对 Sqlite 的支持! 优秀的 Sqlite 早就有很多 Delphi 的包装(http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers, 从 https://code.google.com/ 等还能搜到更多). 有静

Delphi FireDAC 下的 Sqlite(十二) 备忘录

该话题的继续延伸主要就是 SQL 的语法了, 草草收场的原因是现在的脑筋已经进入了 IntraWeb 的世界. 相关备忘会随时补充在下面: //连接多个数据库的参考代码: FDConnection1.ExecSQL('ATTACH ''c:hr.sdb'' AS hr'); FDConnection1.ExecSQL('ATTACH ''c:cust.sdb'' AS cust'); FDQuery1.Open('select * from "Orders" o ' + 'left j

Delphi FireDAC 下的 Sqlite(十一) 批量提交 SQL 命令的测试

可把下面代码直接贴在空白窗体上, 以快速完成窗体设计: object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 265 Height = 338 Align = alLeft DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText TitleFont.Height = -11 TitleFont.Nam

Delphi FireDAC 下的 Sqlite(十) 使用 R-Tree 搜索

R-Tree 主要用于三维空间的搜索, 据说这种搜索算法非常之快, 哪怕百万条记录也是眨眼间的事! SQLite 支持 1-5 维, FireDAC 也提供了 TFDSQLiteRTree 控件以方便定义回调函数. 为了简单, 我用二维表进行了成功的测试. 建立 R-Tree 表(索引)时需要使用特定语法, 譬如: FDConnection1.ExecSQL('CREATE VIRTUAL TABLE MyRTreeTable USING rtree(Id, minX, maxX, minY,

Delphi FireDAC 下的 Sqlite(八) 自定义函数

Sqlite 本身没有这个功能, FireDAC 通过 TFDSQLiteFunction 增加了该功能; 尽管通过某些 SQL 语句或通过视图也可以达到类似效果, 但函数会更灵活些. 本例先建了一个成绩表, 然后通过两个 TFDSQLiteFunction 实现了 "总分" 与 "平均分" 的计算. 你可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成窗体设计: object DBGrid1: TDBGrid Left = 8 Top = 88 Wid

Delphi FireDAC 下的 Sqlite(七) 备份、优化和事务(Transaction)

用 TFDSQLiteBackup 控件, 两三行代码即可完成 Sqlite 数据库的备份. procedure TForm1.Button1Click(Sender: TObject); begin {先初始化目标} FDConnection1.DriverName := 'SQLite'; FDConnection1.Params.Add('Database=C:\Temp\FDDemo_Back.sdb'); //如果不指定这个路径, 就是备份到内存 FDConnection1.Open(

Delphi FireDAC 下的 Sqlite(五) 数据的插入、更新和删除

先在空白窗体上添加: TFDConnection.TFDPhysSQLiteDriverLink.TFDGUIxWaitCursor.TFDQuery.TDataSource.TDBGrid(并在设计时关联好). 你也可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成以上的添加过程: object DBGrid1: TDBGrid Left = 16 Top = 88 Width = 361 Height = 329 DataSource = DataSource1 TabOrder