人大金仓数据库KingbaseES 手动加密数据经验分享
KingbaseES 支持用户使用加密函数保护敏感数据,并提供了多种加密算法。加密函数说明:• sm3() 函数参数为: 加密数据。• sm4() 函数/rc4() 函数参数分别为: 加/解密数据、密钥、加密/解密标识。• sm4_ex() 函数 (rc4 函数没有 ex 函数扩展)参数分别为: 加/解密数据、密钥、加密/解密标识、填充模式。填充模式如下:1)填充模式选 1, 数据按 16 字节倍
关键字:
安全;手动加密数据、人大金仓、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 安全指南》
更多推荐
所有评论(0)