加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FireDAC 下的 Sqlite [6] - 加密

发布时间:2020-12-12 19:43:12 所属栏目:百科 来源:网络整理
导读:主要就是设置 TFDConnection 的两个链接参数: Password,NewPassword,非常简单. const dbPath = 'C:TempSQLiteTest.sdb' ; {建立加密数据库,密码是 mm123} procedure TForm1.FormCreate(Sender: TObject); const strTable = 'CREATE TABLE MyTable(Id integ
主要就是设置 TFDConnection 的两个链接参数: Password,NewPassword,非常简单.

const
 dbPath = 'C:TempSQLiteTest.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,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;

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 与其它并不兼容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读