分类: Sybase
2008-04-11 11:34:44
来源:赛迪网 作者:Sybase |
如果希望只加密部分数据库,则可以使用 ENCRYPT 函数做到这一点。ENCRYPT 函数使用的 AES 高度加密算法与对传递给数据库的值进行加密所用的数据库加密算法相同。
ENCRYPT 函数使用密钥对传递给它的值进行加密。此密钥区分大小写,即使在不区分大小写的数据库中也是如此。与大多数口令一样,最好选择不容易被猜测的密钥值。建议选择满足以下条件的 KEY 值:长度至少为 16 个字符,包含大小写混合以及包含数字、字母和特殊字符。每次要对数据进行解密时,都需要使用此密钥。
注意:保护您的密钥。一定要在安全的位置存储一份密钥。如果丢失了密钥,将导致完全无法访问加密的数据,而加密数据是无法进行恢复的。
使用 DECRYPT 函数以及 ENCRYPT 函数中指定的同一密钥可以对已加密的值进行解密。这两个函数都会返回 LONG BINARY 值。如果需要不同的数据类型,则可使用 CAST 函数将值转换为所需的数据类型。下例介绍如何使用 CAST 函数将已解密的值转换为所需的数据类型。
如果数据库用户需要访问解密形式的数据,但不希望他们访问加密密钥,则可以创建使用 DECRYPT 函数的视图。这样允许用户在不知道加密密钥的情况下访问解密数据。如果创建使用该表的视图或存储过程,则可使用 ALTER VIEW 和 ALTER PROCEDURES 的 SET HIDDEN 参数,以确保用户无法访问加密密钥。 |