文档章节

FireDAC 下的 Sqlite [6] - 加密

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 360
阅读 15
收藏 0

主要就是设置 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;


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

本文转载自:http://www.cnblogs.com/del/p/3744017.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
iOS开发中的sqlite数据库

1.iOS开发中的数据一般指sqlite,而如果连接服务器,那就另说,那就不是iOS开发直接操作其它数据库,譬如SqlSever,Mysql,Orical。要使用数据库sqlite,首先将libsqlite3.0.dylib加到项目中。...

今日竹石
2014/02/18
0
1
sqlite3 用SQLCipher 加密后 命令行下如何重新打开和读取

http://sqlcipher.net/sqlcipher-api/#key PRAGMA key The process of creating a new, encrypted database is called “keying” the database. SQLCipher uses just-in-time key derivati......

kjpioo
2013/08/01
0
2
SQLite3 API编程手册

前序: Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。 这 里要注明,我是一...

30以后
2014/04/01
0
0
linux下源码编译sqlite3数据库

尽管大多数linux下有sqlite3数据库,但是嵌入式开发的时候还是需要sqlite3数据库,下面为源码编译过程 1,下载SQLite源代码sqlite-3.6.23.1.tar.gz 2,复制sqlite-3.6.23.1.tar.gz到linux上的/us...

一一无念
2012/05/15
0
0
安卓应用安全指南 4.5.3 使用 SQLite 高级话题

安卓应用安全指南 4.5.3 使用 SQLite 高级话题 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 4.5.3.1 在 SQL 语句的断言中使用通配符...

apachecn_飞龙
03/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IOasd

能够使用FileUtils常用方法操作文件 字符流体系介绍 : 在 IO 开发中, 我们传输最频繁的数据为字符, 而以字节的方式来传输字符数据会使程序员丧失对数据内容的判断.因为程序员只认识字符, 不认...

码农屌丝
17分钟前
0
0
创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
3
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
9
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部