从前段时间著名的CSDN的600W用户密码泄漏事件,再到天涯社区的4000w万用户,使用户对网站的信誉失去了信心,我记的常用的最早的技术社区就是CSDN,应该那时还是XML 格式化后的页面,相信最近各网站都在做软件上的升级,明文密码决不可取,可以自己写也可以用数据库特性的加密用法不过后者有数据库版本升级灵活性限制。

测试一下9I的加密用法dbms_obfuscation_toolkit package

DES 加密解密

dbms_obfuscation_toolkit.desencrypt

dbms_obfuscation_toolkit.desdecrypt

SQL> l

1  create or replace function encrypt(p_in varchar2,p_key varchar2) return varchar2

2  is

3  begin

4  return utl_raw.cast_to_raw(dbms_obfuscation_toolkit.desencrypt(input_string=>p_in,key_string=>p_key));

5* end;

SQL> /

函数已创建。

SQL> select encrypt(‘123456′,’mark’) from dual;

select encrypt(‘123456′,’mark’) from dual

*

ERROR 位于第 1 行:

ORA-28232: obfuscation 工具箱的输入长度无效

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT_FFI”, line 0

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT”, line 126

ORA-06512: 在”SYS.ENCRYPT”, line 4

[oracle@anbob ~]$ oerr ora 28232

28232, 0000, “invalid input length for obfuscation toolkit”

// *Cause:  Length of data submitted for encryption or decryption is not a

//          multiple of 8 bytes.

// *Action: Make sure that the length of the data to be encrypted or decrypted

//          is a multiple of 8 bytes.

SQL> select encrypt(‘12345678′,’mark’) from dual;

select encrypt(‘12345678′,’mark’) from dual

*

ERROR 位于第 1 行:

ORA-28234: 密钥长度太短

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT_FFI”, line 0

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT”, line 126

ORA-06512: 在”SYS.ENCRYPT”, line 4

SQL> select encrypt(‘123456′,’mark1234’) from dual;

select encrypt(‘123456′,’mark1234’) from dual

*

ERROR 位于第 1 行:

ORA-28232: obfuscation 工具箱的输入长度无效

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT_FFI”, line 0

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT”, line 126

ORA-06512: 在”SYS.ENCRYPT”, line 4

SQL> select encrypt(‘12345678′,’mark12340’) from dual;

ENCRYPT(‘12345678′,’MARK12340’)

——————————————————————————–

3B11A43ED856AE79

SQL> select encrypt(‘123456781′,’mark123400’) from dual;

select encrypt(‘123456781′,’mark123400’) from dual

*

ERROR 位于第 1 行:

ORA-28232: obfuscation 工具箱的输入长度无效

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT_FFI”, line 0

ORA-06512: 在”SYS.DBMS_OBFUSCATION_TOOLKIT”, line 126

ORA-06512: 在”SYS.ENCRYPT”, line 4

SQL> select encrypt(‘1234567812345678′,’mark123400’) from dual;

ENCRYPT(‘1234567812345678′,’MARK123400’)

——————————————————————————–

3B11A43ED856AE79BD5AC85D2541690A

修改后:

SQL> create or replace function encrypt(p_in varchar2,p_key varchar2) return varchar2

is

v_in varchar2(255);

v_rtn varchar2(1000);

begin

v_in := rpad(p_in,(trunc(length(p_in)/8)+1)*8,chr(0));

dbms_obfuscation_toolkit.desencrypt(input_string=>v_in,key_string=>p_key,encrypted_string=>v_rtn);

return v_rtn;

end;

/

函数已创建。

SQL> create or replace function decrypt(p_in varchar2,p_key varchar2) return varchar2

2  is

3  v_in varchar2(2000);

4  begin

5     dbms_obfuscation_toolkit.DESDECRYPT(input_string => p_in,key_string => p_key,

6    decrypted_string=> v_in);

7    v_in := rtrim(v_in,chr(0));

8    return v_in;

9  end;

10  /

函数已创建。

因篇幅原因,再分一篇

打赏

微信扫一扫,打赏作者吧~

oracle9i解密rewrap,oracle 9i 的加密解密用法之dbms_obfuscation_toolkit(一)相关推荐

  1. java des加密解密_Java实现的DES加密解密工具类实例

    本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...

  2. php64解密,PHP 用base64兑现加密解密

    PHP 用base64实现加密解密 php中用base64实现加密解密:    base64_encode() 和 base64_decode() 进行加密和解密. 语法:    string bas ...

  3. 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上

    前言: 首先.在这里声明.本人没学过加密解密专业以及没有对加密解密做过任何的系统学习.文章用来记录我自己学到的加密解密的一些我理解的东西,有错误之处欢迎大家指出.谢谢. 加密解密.在以前我的眼里.是灰 ...

  4. 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 下

    继上一篇 加密解密系列文章之 - ASCII 加密解密(最简单的加密解密) 上 的下篇. 我在 上 篇里 已经给大家说了最基本的ASCII 加密 解密的东西.然后再最后 我们说了ASCII加密解密的问 ...

  5. oracle加密可以跟java一致吗,在GBase 8s上使用java udr实现Oracle兼容的加密解密功能...

    最近碰到客户从Oracle迁移到GBase 8s使用到字段加密解密功能,使用到了Utl_raw.cast_to_varchar2.Utl_raw.cast_to_raw.Utl_encode.base ...

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

    数据库部分字段加密 实现该字段模糊查询 解决方案:从数据库层面 对改字段进行解密 是目前最为方便的 而oracle可以支持将java类带入到oracle从而调用对应的方法. 基本步骤: 编写好对应的加 ...

  7. oracle数据库字段加密解密

    第一步,使用sys账号登录,创建加密解密函数 CREATE OR REPLACE FUNCTION f_Encrypt_number (number_in IN VARCHAR2) RETURN RA ...

  8. java aes128加密解密_java AES 128 位加密解密算法

    最近在做app后台的服务器,使用到AES加密解密算法,无奈网上的都不符合要求,于是自己借鉴着写了一个AES加密解密工具. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥 ...

  9. 加密解密php,PHP实现的加密解密处理类

    本文实例讲述了PHP实现的加密解密处理类.分享给大家供大家参考,具体如下: /*=========================================================== ...

最新文章

  1. 赠书 | 新手指南——如何通过HuggingFace Transformer整合表格数据
  2. PhpForm表单验证
  3. osg中实现HUDAxis功能
  4. c语言Max错误,C语言编程常见错误.pdf
  5. Java数组扩容算法及Java对它的应用
  6. 老师也不是什么好东西
  7. 三款JSON类库Jackson,Gson与JSON-lib的性能对比
  8. JDK源码解析--ArrayList
  9. linux文件监控和同步,(转)Linux下经过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步...
  10. c语言中药品管理系统报告,C语言 药品管理系统.doc
  11. ENVI辐射校正(辐射定标+大气校正)
  12. asc和desc的英文全称
  13. SAP ABAP ChatGPT 初体验 我会失业吗?
  14. 突发!IBM 中国研究院倒闭了,码农:又少了一个上岸养老的地方,搞科研的打不过搞996的...
  15. php yii2 sns,GitHub - 13240031972/iisns: 基于 yii2 的 sns 社区系统,一站式解决社区建站...
  16. 输出1900到2000年中所有的闰年。每输出3个年号换一行
  17. Centos7 下 MySQL8.0 的安装
  18. 9宫格解锁 android_Android实现九宫格解锁的实例代码
  19. 2017沈阳第二十届国际供热通风空调及舒适家居展览会会刊(参展商名录)
  20. 打包下载图片(文件)

热门文章

  1. 使用注解装配Bean
  2. 使用继承思想,去开发一款组件(element-ui collapse组件为例子)
  3. 工作总结 EntityFramework中出现DateTime2异常的完美解决办法
  4. 同一master,两个slave的server_id相同问题处理
  5. JavaScript 学习笔记— —Date对象
  6. ORACLE数据库管理工具EM
  7. VC++ WIN32 sdk实现按钮自绘详解.
  8. list接口中的常用方法例子
  9. 第四章、PL/SQL基础
  10. Linux下日志分析的几个常用命令