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

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

基本步骤:

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

将其打包为jar包

oracle数据库导入

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

在sql里面调用

1. 编写加密解密类

image.png

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

2. 打包jar包

image.png

3. 导入oracle数据库

命令如下 :

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

然后正常你就会看到:

image.png

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

4. 编写function

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

命令如下:在sql里面执行

select * from user_java_classes;

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 '%部%';

image.png

image.png

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

  1. oracle数据库+字段加密,ORACLE 加密(TDE) 对字段加密测试

    ORACLE TDE(Transparent Data Encryption) 参考http://space.itpub.net/17203031/viewspace-681943 1.查看版本,OR ...

  2. oracle 字段加密解密方法,oracle 字段加密解密方法

    要用到DECRYPT方法对数据解密和ENCRYPT方法加密 1.首先通过sys用户登录到oracle数据库,因为我们要通过这个用户来设置一些高级权限 grant execute on DBMS_cry ...

  3. oracle 加密怎么解密,oracle加密encrypt,解密decrypt,

    oracle加密encrypt,解密decrypt, 目录 oracle加密encrypt,解密decrypt加密 解密 oracle加密encrypt,解密decrypt 有的oracle版本没有加 ...

  4. 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码

    使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码 Oracle数据库系统自带的PL/SQL对象(包,存储过程,函数等)的代码绝大部分都是使用了wrap程序加 ...

  5. oracle 加密成,Oracle wrap加密 和 unwrap解密过程!

    在一些代码中,使用wrap加密,经过加密的存储过程等不能查看,oracle也没有公布unwrap方法,但这也难不倒一些喜欢专研的大神,Oracle加密的原理就是先对源码进行lz压缩lzstr,然后对压 ...

  6. oracle加密 解密,oracle加密encrypt,解密decrypt

    本文将为您描述oracle加密encrypt,解密decrypt,教程操作步骤:oracle加密encrypt,解密decrypt 目录 oracle加密encrypt,解密decrypt 加密 解密 ...

  7. oracle md5 重复,33-SQLServer和Oracle使用MD5加密字符串不一致的问题

    一.总结 1.varchar: 可变长度的非Unicode字符数据.n的值必须在1到8000之间.n是2的话,表示2个字节,所以可以存储2个英文,只能存储1个中文. nvarchar: 可变长度的Un ...

  8. mybaits plus 字段加密与解密

    mybaits plus 字段加密与解密 写在前面 在我们实际开发中有的时候需要保证数据的安全,那么这个时候我们就需要对我们存储的数据加密,数据加密可以用很多方法实现,比如数据库加密,java代码加密 ...

  9. oracle12c加密ted,Oracle数据透明加密-TDE

    介绍 Oracle 10g R2提供了一个新的特性,让你只需要做如下动作:你可以不写一行代码,只需要声明你需要加密某列.当用户插入数据的时候,数据库透明的加密数据然后存储加密后的数据.同样的,当用户读 ...

最新文章

  1. spring+mybatis之声明式事务管理初识(小实例)
  2. centos yum 安装java_Linux Centos 使用 yum 安装java
  3. linux c 封装redis,封装hiredis——C++与redis对接(一)(string的SET与GET操作)
  4. 如何使用Action.Invoke()触发一个Storyboard
  5. 北京人工智能工程师职称评定政策出台,明年起一年一评
  6. 利用 OpenMP 实现埃拉托斯特尼(Eratosthenes)素数筛法并行化
  7. HDU3784 继续xxx定律【角谷猜想】
  8. Java 绘制艺术图案
  9. 记一次“U盘拔出”后重要文件丢失的恢复之旅
  10. 手机CAD如何快速看图下载?
  11. Java Lambda 归约 reduce
  12. 什么是Scheme?原来还可以这样应用!
  13. Matlab肤色分割
  14. 计算机二级操作题相关笔记
  15. 英特尔Haswell处理器已出货 预计6月推出
  16. 【车载开发系列】UDS诊断---DTC故障码基础回顾
  17. python微信公众号翻译功能_自学Python笔记:给微信公众号搭建“成绩查询”功能...
  18. Linux下的Cannot find a valid baseurl for repo: base/7/x86_64问题记载
  19. JTAG接口和SWD接口定义
  20. (16)调度代码周期性运行

热门文章

  1. python 素描化图像_任意图像转素描:Python分分钟实现
  2. HTML实现取餐小票
  3. 笔记本已连接过的wifi密码忘记,如何查看?
  4. 为什么大部分对特斯拉的公众认知都是错误的呢?
  5. STM32F765 调试MAX31856 经验总结
  6. 前端16天--IFC、BFC、H5新特性、选择器、伪类元素、扩展盒模型、圆角、盒子阴影等--2021/4/21
  7. 苹果CMSv10首款原创支持百度mip技术自适应视频模板
  8. 洛谷 P1506 拯救oibh总部 题解(洪水填充法的模板)
  9. 全连接神经网络VS卷积神经网络基本概念理解
  10. Android面试题整理(源自鸿洋大神公众号【201803】的一篇BAT面试题推送)