关键字:

安全;手动加密数据、人大金仓、KingbaseES

概述

KingbaseES 支持用户使用加密函数保护敏感数据,并提供了多种加密算法。

加密函数说明:

• sm3() 函数

参数为: 加密数据。

• sm4() 函数/rc4() 函数

参数分别为: 加/解密数据、密钥、加密/解密标识。

• sm4_ex() 函数 (rc4 函数没有 ex 函数扩展)

参数分别为: 加/解密数据、密钥、加密/解密标识、填充模式。填充模式如下:

1)填充模式选 1, 数据按 16 字节倍数强制填充,缺 m 个字节则填充 m 个字节的 m 值 (m 最大值为 16)。 2)填充模式选 0,数据按 16 字节倍数非强制填充 0x0, 同 sm4。

特性实际操作

加密算法使用示例:

SELECT encode(digest('abc', 'md5'), 'hex');

SELECT encode(digest('abc', 'sha1'), 'hex');

SELECT encode(digest('abc', 'sha224'), 'hex');

SELECT encode(digest('abc', 'sha384'), 'hex');

SELECT encode(digest('abc', 'sha512'), 'hex');

SELECT encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex');

SELECT encode(encrypt('Lets try a longer message.', '0123456789', 'aes'), 'hex');

SELECT encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex');

SELECT encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex');

SELECT encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex');

加密函数使用示例;

create extension kbcrypto;

set bytea_output to escape;

-- 1. sm3() 函数

select sm3('123456abcdef');

-- 2. sm4() 函数/rc4() 函数

-- 加密:

select sm4('123456abcdef','0123456789ABCDEF',0);

select rc4('123456abcdef','0123456789ABCDEF',0);

-- 解密

select sm4(sm4('123456abcdef','0123456789ABCDEF',0), '0123456789ABCDEF',1);

select rc4(rc4('123456abcdef','0123456789ABCDEF',0), '0123456789ABCDEF',1);

-- 3. sm4_ex() 函数 (rc4 函数没有 ex 函数扩展)

-- 1)填充模式选 1

-- 加密:

select sm4_ex('123456abcdef','0123456789ABCDEF',0,1);

-- 解密

select sm4_ex(sm4_ex('123456abcdef','0123456789ABCDEF',0,1), '0123456789ABCDEF',1,1);

-- 2) 填充模式选 0

-- 加密

select sm4_ex('123456abcdef','0123456789ABCDEF',0,0);

-- 解密

select sm4_ex(sm4_ex('123456abcdef','0123456789ABCDEF',0,0), '0123456789ABCDEF',1,0);

使用经验及注意事项

注意:

1. SHA2 算法是在版本 0.9.8 时被加入到 OpenSSL 的。

2. OpenSSL 支持的任何摘要算法都是自动选取的。这对于使用密码来说是不可能的,因为需要被显式地支持。

3. AES 从版本 0.9.7 就开始被包括在 OpenSSL 中。

价值评价

可以支持多种加密算法,手动加密数据,避免特殊情况时无法加密的现象,同时也避免了操作泄露等问题,增加了可靠性和安全性。

参考资料

《KingbaseES 安全指南》

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐