PGSQL通过pljava实现sm4解密

前言

在pgsql数据库中安装pljava插件,通过调用sm4 jar工具包实现sql sm4加解密。

一、安装pgsql以及pljava插件

使用postgresql-pljava-docker 部署pgsql 11.4版本数据以安装pljava插件。

docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=password beargiles/pljava

二、上传sm4工具包

将sm4工具包上传plsql docker中

docker cp D:\project\java\SM4Utils\target\security-1.0-SNAPSHOT.jar  0fe28b54a9dd:/  

附:security-1.0-SNAPSHOT.jar

三、pgsql数据库中配置冰创建解密函数

–授权

grant USAGE on LANGUAGE java to postgres;

–安装jar

select sqlj.install_jar('file:///security-1.0-SNAPSHOT.jar', 'SM4', true);
--select sqlj.replace_jar('file:///security-1.0-SNAPSHOT.jar', 'SM4', true);
--select sqlj.remove_jar('SM4', true);

–给schema添加classpath

SELECT sqlj.set_classpath( 'public', 'SM4' );

–创建函数

CREATE or replace FUNCTION sm4_decode( varchar, varchar ) RETURNS CHAR AS 
    'com.wonders.utils.security.SM4Utils.strDecode'
LANGUAGE java;

–使用

select sm4_decode('Pta8aen81PnXLAFHEbLXIw==','T_VAC_BASIC_CHILDREN');

总结

pgsql使用pljava调用jar包中方法,难点在于pljava编译安装。
pljava最好在linux环境中编译,如果在windows环境编译需要修改include\postgresql\server\c.h中#include <strings.h>等等,并在windows环境中安装openssl。。。。。
所以本文直接选择postgresql-pljava-docker,使用docker部署。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值