LightDB支持SM2~SM4国密加密

国密算法是我国自主研发创新的一套数据加密处理系列算法,从SM1-SM4分别实现了对称、非对称、摘要等算法功能,其中SM1是非公开的,需要特定的硬件芯片,而SM2-SM4是公开的,不依赖于硬件。
其中,SM2为非对称加密算法,具有一对公钥和秘钥,公钥用于加密,密钥用于解密;SM3为消息摘要算法,类似于MD5,不涉及解密;SM4为对称加密算法,只有一个秘钥,同时用于加密和解密。
LightDB新增extension--lt_sm,支持SM2~SM4加密算法,官网已发布的版本已支持

-- 生成SM2私钥
SELECT gm_sm2_genprikey(true);
 gm_sm2_genprikey
------------------
 true
-- 生成SM2公钥
SELECT gm_sm2_genpubkey(true);
 gm_sm2_genprikey
------------------
 true
 
--调用SM2加密方法
select gm_sm2_encrypt('恒生电子LightDB_001');
                                                                                                                            gm_sm2_encrypt
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     \x043f115fde4ad84ca331e6d6edbeb806d09ffa6094f8d52a57a39c7c6c587bcd06eb72146f3d503923af813fa67de1c5f484e5b657c83d9f332b9263d08d6b2a42ae6bd733bec7f6b17ebc74783ebc7eba0dff68b269edfa44a54751527f7204d4e30a2ddb44ebbb5ea1864657e86225100b00e581ac6e84
--调用SM2解密方法
select gm_sm2_decrypt('\x043f115fde4ad84ca331e6d6edbeb806d09ffa6094f8d52a57a39c7c6c587bcd06eb72146f3d503923af813fa67de1c5f484e5b657c83d9f332b9263d08d6b2a42ae6bd733bec7f6b17ebc74783ebc7eba0dff68b269edfa44a54751527f7204d4e30a2ddb44ebbb5ea1864657e86225100b00e581ac6e84');
                      gm_sm2_decrypt
--------------------------------------------------
\xe68192e7949fe794b5e5ad904c6967687444425f303031

select convert_from('\xe68192e7949fe794b5e5ad904c6967687444425f303031', 'SQL_ASCII');
  convert_from
---------------------
  恒生电子LightDB_001     
     

--SM3加密方法
select gm_sm3_encrypt('LightDB_002');
                        gm_sm3_encrypt
--------------------------------------------------------------------
\x9de35b686bec17533e9ded7abfb039320bb08abbcec74eb0f44cf52b09e255c1


--生成SM4密钥
select gm_sm4_genkey(true);
 gm_sm4_genkey
---------------
true

--SM4加密方法
select gm_sm4_encrypt('恒生电子LightDB_003');
                    gm_sm4_encrypt
--------------------------------------------------
\x33e7117d0ce6f38ec2b78bfab08b991628771bedeeecf8

--SM4解密方法
select gm_sm4_decrypt('\x33e7117d0ce6f38ec2b78bfab08b991628771bedeeecf8');
                      gm_sm4_decrypt
--------------------------------------------------
\xe68192e7949fe794b5e5ad904c6967687444425f303033

select convert_from('\xe68192e7949fe794b5e5ad904c6967687444425f303033', 'SQL_ASCII');
    convert_from
---------------------
 恒生电子LightDB_003

更多详情可参考https://www.hs.net/lightdb/docs/html/ltsm.html

posted @ 2022-06-11 10:29  起司24  阅读(388)  评论(0编辑  收藏  举报