AES_ENCRYPT 函数 [String]
4 Sybase IQ 中的加密列
注意 当对文字常量使用 AES_ENCRYPT 函数时 (如以下语句中所示):
INSERT INTO t (cipherCol) VALUES (AES_ENCRYPT (1,
‘key’))
请注意,数据类型 1 是不明确的。数据类型 1 可以是 TINYINT、
SMALLINT、 INTEGER、 UNSIGNED INT、 BIGINT 或 UNSIGNED BIGINT,
也可能是其它数据类型。
Sybase 建议您以显式方式使用
CAST 函数来消除任何潜在的不明确性,
如以下语句中所示:
INSERT INTO t (cipherCol)
VALUES ( AES_ENCRYPT (CAST 1 AS UNSIGNED INTEGER),
‘key’))
在加密数据时通过使用 CAST 函数以显式方式转换数据类型,可以防止
在解密数据时出现与使用
CAST 函数有关的问题。
如果要加密的数据来自于列,或加密数据是使用
LOAD TABLE 插入的,则
不存在不明确性问题。
AES_ENCRYPT 函数 [String]
功能
使用所提供的加密密钥对指定值进行加密,并返回 VARBINARY 或 LONG
VARBINARY
。
语法
AES_ENCRYPT( string-expression, key )
参数
string-expression
要加密的数据。有关所支持数据类型的列表,请参见
“适用于加密列的数据类型”(第 3 页)。也可以将二进制值传递给此函
数。此参数区分大小写,即使在不区分大小写的数据库中也是如此。
key 用来对 string-expression 加密的加密密钥。必须使用同一密钥为值
解密,才能获取原始值。此参数区分大小写,即使在不区分大小写的数
据库中也是如此。
与使用大多数口令一样,最好选择不易猜出的密钥值。Sybase 建议您为
密钥选择的值长度至少为 16 个字符,同时包含大写和小写字符,且包括
数字、字母和特殊字符。每次要对数据进行解密时,都需要使用此密钥。
警告! 保护好您的密钥。请务必在安全的位置保存一份密钥副本。如果
丢失了密钥,则加密数据将完全无法访问且无法恢复。