UniDAC使用教程(五):数据加密
admin
2023-04-19 11:04:31
0次

下载UniDAC最新版本

Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++Builder, Lazarus (以及 Free Pascal) , Mac OS X, iOS, Android, Linux和64和32位的FreeBSD等等。我们将长期的经验集于这个小组件,提供统一的数据库连接访问(如oracle、微软SQL等等)。这意味着您可以在您的项目之间轻松地切换不同的数据库,以及创建跨数据库应用程序接口。

UniDAC拥有内置的数据加密和解密算法。要启用加密,应将TCREncryptor组件附加到数据集,并指定加密字段。在表中插入或更新数据时,将按照指定的方法在客户端加密信息。同样,当从服务器读取数据时,组件会“即时”解密这些字段中的数据。

对于加密,您应该指定数据加密算法(EncryptionAlgorithm属性)和密码(Password属性)。根据指定的密码生成密钥,对数据进行加密。也可以使用SetKey方法直接设置密钥。

存储加密数据时,除了初始数据外,还可以存储其他信息:GUID和散列。(方法在TCREncryptor.DataHeader属性中指定)。

如果数据存储时没有附加信息,则无法确定数据是否加密。在这种情况下,只应将加密的数据存储在列中,否则,由于无法区分数据的性质,会出现混淆。同样,从信息保护的角度来看,类似的源数据将以加密的形式等价,这是不好的。这种方法的优点是初始数据的大小等于加密数据的大小。

为了避免这些问题,建议与数据一起存储适当的GUID,这对于指定记录中的值是加密的,并且在读取数据时必须对其进行解密是必需的。这允许您避免混淆并将加密和解密的数据保存在同一列中,这在使用现有表时尤为重要。同样,这样做时,在数据加密之前会生成一个随机初始化向量,用于加密。这允许您接收相同初始数据的不同结果,从而显著提高了安全性。

最可取的方法是存储哈希数据以及GUID和加密信息,以确定数据的有效性并验证其完整性。这样,如果在传输或数据存储的任何阶段试图伪造数据,在解密数据时,都会产生相应的错误。为了计算散列,可以使用SHA1或MD5算法(HashAlgorithm属性)。

后两种方法的缺点是存储辅助信息需要额外的内存。

由于加密算法使用一定大小的缓冲区,并且在存储附加信息时,需要使用附加内存,因此TCREncryptor仅支持对字符串或二进制字段(ftString、ftWideString、ftBytes、ftvarBytes、ftBlob、ftMemo、ftWideMemo)进行加密。如果使用字符串字段加密,首先对数据进行加密,然后将获得的二进制数据转换为十六进制格式。在这种情况下,数据存储需要两倍的空间(一个字节=2个十六进制字符)。

因此,为了能够加密其他数据类型(如日期、数字等),需要在表中创建二进制或blob类型的字段,然后在数据映射的帮助下将其转换为客户机端的所需类型。

需要注意的是,在服务器端不可能通过加密字段进行搜索和排序。只有在使用Locate和LocaTex方法对数据进行解密之后,才能在客户端上对这些字段执行数据搜索。排序是通过设置TMemDataSet.IndexFieldNames属性来执行的。

例如:

例如,表中存储了一个企业的员工列表,其中包含以下数据:全名、雇用日期、工资和照片。我们希望所有这些数据都以加密形式存储。编写用于创建表的脚本:

1

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...