oracle实现sha加密解密,oracle部分字段加密解密 实现模糊搜索

数据库部分字段加密 实现该字段模糊查询

解决方案:从数据库层面 对改字段进行解密 是目前最为方便的 而oracle可以支持将java类带入到oracle从而调用对应的方法。

基本步骤:

编写好对应的加密解密类,方法为静态方法static修饰。

将其打包为jar包

oracle数据库导入

编写对应的函数function或者存储过程procedure[不需要返回值的就写存储过程]

在sql里面调用

1. 编写加密解密类

95ddaaf540b7

image.png

此处需要特别注意oracle里面调用的方法必须为静态方法

2. 打包jar包

95ddaaf540b7

image.png

3. 导入oracle数据库

命令如下 :

loadjava -r -f -verbose -resolve -user scott/tiger@orcl des-1.0-SNAPSHOT.jar

然后正常你就会看到:

95ddaaf540b7

image.png

需要特别注意oracle的用户名和密码已经对应的实例

4. 编写function

当然你需要查看下是不是导入成功了

命令如下:在sql里面执行

select * from user_java_classes;

95ddaaf540b7

image.png

接着,你就可以编写function了

--加密

create or replace function sven_encrypt(str varchar2,key varchar2) return varchar2 as

LANGUAGE JAVA NAME 'com/epoint/utility/code/DES.encrypt(java.lang.String,java.lang.String) return java.lang.String';

--解密

create or replace function sven_decrypt(str varchar2,key varchar2) return varchar2 as

LANGUAGE JAVA NAME 'com/epoint/utility/code/DES.decrypt(java.lang.String,java.lang.String) return java.lang.String';

然后你可以查询下,是否写入成功:select * from user_objects where object_type = 'FUNCTION';

5. sql里面掉调用方法

-- dept表 三个字段 deptno dname loc

--一些测试数据,加密当然可以选择在后台java代码执行

insert into dept values(70,sven_encrypt('测试部','svensven'),'kkk');

insert into dept values(80,sven_encrypt('技术部','svensven'),'kkk');

insert into dept values(90,sven_encrypt('咨询部','svensven'),'kkk');

insert into dept values(1000,sven_encrypt('开发部','svensven'),'kkk');

insert into dept values(110,sven_encrypt('实施部','svensven'),'kkk');

--解密模糊查询

select d.*, sven_decrypt(d.testname,'svensven') from dept d where sven_decrypt(d.testname,'svensven') like '%部%';

95ddaaf540b7

image.png

95ddaaf540b7

image.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值