DB2® 数据库系统提供了若干方法来对存储器中的数据和通过网络传输的数据进行加密。
要对在客户机与 DB2 数据库之间传输的数据进行加密,可以使用 DATA_ENCRYPT 认证类型,或者使用 DB2 数据库系统对“安全套接字层”(SSL) 的支持。
ENCRYPT 内置函数使用基于密码的加密方法对数据进行加密。这些函数还允许您封装密码提示。密码提示嵌入在加密数据中。一旦加密,对数据进行解密的唯一方式是通过使用正确的密码来解密。选择使用这些函数的开发者应该对忘记的密码和不能用的数据如何管理进行计划。
ENCRYPT 函数的结果是 VARCHAR FOR BIT DATA(最大长度为 32631 字节)。
只能加密 CHAR、VARCHAR 和 FOR BIT DATA。
DECRYPT_BIN 和 DECRYPT_CHAR 函数使用基于密码的解密对数据进行解密。
DECRYPT_BIN 始终返回 VARCHAR FOR BIT DATA,而 DECRYPT_CHAR 始终返回 VARCHAR。因为第一个自变量可能是 CHAR FOR BIT DATA 或 VARCHAR FOR BIT DATA,所以存在结果与第一个自变量不同的情况。
结果的长度取决于到下一个 8 字节边界的字节数。当指定可选提示参数时,结果的长度可能是数据自变量的长度加上 40 再加上到下一个 8 字节边界的字节数。或者,如果未指定可选提示参数,结果的长度可能是数据自变量的长度加上 8 再加上到下一个 8 字节边界的字节数。
GETHINT 函数返回封装的密码提示。密码提示是将帮助数据所有者回忆起密码的短语。例如,可以将“大海”这个单词用作回忆密码“太平洋”的提示。
以下列两种方式之一确定用于对数据加密的密码:
专用寄存器的初始或缺省值是一个空字符串。
密码的有效长度在 6 和 127 之间,包括 6 和 127。提示的有效长度在 0 和 32 之间,包括 0 和 32。