SM2_ENCRYPT
📄字数 824
👁️阅读量 加载中...
功能描述
使用 SM2 公钥加密数据。
版本支持
在OpenSSL 1.1.1版本及以上、Tongsuo任意版本支持。
语法格式
sql
SM2_ENCRYPT(expr1, expr2)输入参数
expr1:SM2 公钥,必须为64字节,BINARY类型或者能隐式转换为BINARY类型的其他类型的值。expr2:明文数据,BINARY类型或者能隐式转换为BINARY类型的其他类型的值。
输出结果
密文数据,BINARY 类型。
执行类型
| TYPE | VALUE | 说明 |
|---|---|---|
| NATIVE | 1 | 函数只能在本地计算 |
| VOLATI | 1 | 函数的每次计算值不同 |
| STABLE | 0 | 函数的每次计算值相同 |
| COMPUTE | 0 | 函数支持预计算取值 |
| NOT_CONST | 0 | 函数不支持转常数 |
| HAVE_DEF | 0 | 函数参数有默认值 |
示例
sql
SQL> DECLARE
key raw;
pubkey raw;
prikey raw;
src VARCHAR := '48656C6C6F';
ciphertext raw;
BEGIN
select sm2_key_gen() into key;
select substring(key, 1, 64) into prikey;
select substring(key, 65) into pubkey;
select sm2_encrypt(pubkey, src) into ciphertext;
dbms_output.put_line('ciphertext: ' || rawtohex(ciphertext));
END;
/
ciphertext: 306F022100FA93C99D4927C2AC23A1B24F31D6AD7A9DAE3DCEE6EC5ECC921C34DF8173AC34022100997D5506E4205E7592065E74CF8FF7BCD37D6468AF780DCD9F5FAE8BF5EE0F100420B832FC6508B0CF56ADF40BBAE9DD572E10EDD1FE7B4C53D97EB4E3AE087B827B040564B99F9192
Execute successful.
Use time:5 ms.