使用 ENCRYPT_AES 或 ENCRYPT_TDES 内建的函数来加密数据。以 BASE64 格式(又称为 Radix-64)来存储字符数据类型的加密的值。对于字符数据,这需要比相应的未加密的数据大得多的存储。省略 hint 可对每一加密的值减少超过 50 字节的开销。留出充足的存储空间供加密的值使用是用户的职责。
原始的数据类型 | 加密的数据类型 | BASE64 格式 | 解密函数 |
---|---|---|---|
CHAR | CHAR | 是 | DECRYPT_CHAR |
NCHAR | NCHAR | 是 | DECRYPT_CHAR |
VARCHAR | VARCHAR | 是 | DECRYPT_CHAR |
NVARCHAR | NVARCHAR | 是 | DECRYPT_CHAR |
LVARCHAR | LVARCHAR | 是 | DECRYPT_CHAR |
BLOB | BLOB | 否 | DECRYPT_BINARY |
CLOB | BLOB | 否 | DECRYPT_CHAR |
您不可加密 IDSSECURITYLABEL 数据类型的列。
如果加密的 VARCHAR(或 NVARCHAR)值长于那些数据类型的最大大小 255 字节,则该加密函数返回有足够大小的 CHAR(或 NCHAR)值来存储加密的值。
DECRYPT_BINARY 和 DECRYPT_CHAR 都从加密的 CHAR、NCHAR、VARCHAR、NVARCHAR 或 LVARCHAR 值返回相同的值。没有内建的加密或解密函数支持 BYTE 或 TEXT 数据类型,但您可使用 BLOB 数据类型来加密每个大型字符串。
除了未加密的数据长度之外,对加密的数据需要的存储依赖于编码格式,依赖于您是否指定 hint,以及依赖于加密函数的块大小。要了解估算加密的大小的公式,请参阅 计算加密的数据的存储需求 页上的“计算加密的数据的存储需求”。