WEB开发网
开发学院数据库DB2 DB2中的数据值加密 阅读

DB2中的数据值加密

 2007-05-20 16:16:41 来源:WEB开发网   
核心提示: 例 5:加密和解密 TIMESTAMP 数据时用到的强制类型转换函数, -- Create a table to store our encrypted value create table etemp (c1 varchar(124) for bit data); set encrypt

例 5:加密和解密 TIMESTAMP 数据时用到的强制类型转换函数。

-- Create a table to store our encrypted value

create table etemp (c1 varchar(124) for bit data);

set encryption password 'next password';

-- Store encrypted timestamp

insert into etemp values encrypt(char(CURRENT TIMESTAMP));

-- Select & decrypt timestamp

select timestamp(decrypt_char(c1)) from etemp;

例 6:加密/解密 double 数据。

set encryption password 'next password';

insert into etemp values encrypt(char(1.11111002E5));

select double(decrypt_char(c1)) from etemp;

性能

加密,就其本质而言,会使大部分 SQL 语句慢下来。但是如果多加注意,多加判断,还是可以将大量的额外开销降至最低。而且,加密数据对于数据库的设计有着很大的影响。通常,您需要对一个模式中的一些敏感数据元素进行加密,例如社会保险号、信用卡号、病人姓名,等等。而有些数据值就不是那么适于加密了 -- 例如布尔值(true 和 false),或者其他的像整数 1 到 10 这样的小型集合。这些值与列名一起很容易被猜出,因此需要判断加密是否真的有用。

在某些情况下,对加密的数据创建索引是很好的主意。加密数据的正确匹配及连接将使用您创建的索引。由于加密数据实质上是二进制数据,因此对加密数据进行范围检查时需要扫描表。范围检查需要解密某一列在所有行的值,因此应该避免进行范围检查,至少也应该进行适当的调优。

下面的场景阐明了我们的讨论。考虑一种常见的主从(master-detail)模式,程序员可以在很多项目中使用这种模式。我们将对雇员的社会保险号(ssn)实现列级加密。在主表 emp 和从表 empProject 中,ssn 将以加密的形式存储。

上一页  1 2 3 4 5  下一页

Tags:DB 数据 加密

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接