中文字符串加解密

KingbaseES 加解密模块与是否中文字符没有关系,只是如果是中文,需要加 convert_from 将16进制字符串转换为中文字符。

加密函数:

create or replace function data_encrypt_with_key(encrypt_data text,encrypt_key text)
returns text as
$$
  select encode(encrypt($1::bytea,byteain(('\x'||MD5($2))::CSTRING),'aes-ecb'),'base64')
$$ language sql;

解密函数:

create or replace function data_decrypt_with_key(decrypt_data text,encrypt_key text)
returns text as  $$
  select convert_from(decrypt(decoding($1,'base64'),byteain(('\x'||MD5($2))::CSTRING),'aes-ecb'),'utf8');
$$ language sql

decrypt 函数的结果是 16进制 字符串,需要用convert_from 转换成指定的字符集。这里的 'utf8' 是数据库的字符集,需要根据数据库实际的字符集修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值