首页 > Oracle > Oracle wrap加密 和 unwrap解密过程!
2014
05-05

Oracle wrap加密 和 unwrap解密过程!

在一些代码中,使用wrap加密,经过加密的存储过程等不能查看,oracle也没有公布unwrap方法,但这也难不倒一些喜欢专研的大神,Oracle加密的原理就是先对源码进行lz压缩lzstr,然后对压缩数据进行SHA-1运算得到40位的加密串shstr,然后将加密串与压缩串拼接得到shstr+lzstr,然后对拼接后的字符串进行Oracle双字符转换(转换表)。最后将转换后的字符串进行base64编码,最终得到wrap的加密串。首先先看一下简单的wrap加密。

通过wrap可以加密:1. 存储过程,2. 函数 3. 包和包体 4. type和type body

1. 比如需要加密proc1存储过程,首先编译一下这个存储过程,保证存储过程的正确性

2. 确保proc1存储过程可以正常编译后,执行wrap加密

3. 通过wrap加密之后的脚本,重新在数据库中编译一下,然后查看其数据库中的代码

通过如上简单的一个加密,存储过程的内容编码就屏蔽掉了,只能查看到加密的内容。这种对于在存储过程中有敏感信息的代码非常有作用。但加密好之后,如何解密呢?

正如文章开头所说,oracle并没有提供unwrap的方法,但心细一点的童鞋可能网上已经找到解密的办法了,这里提供一个编译好的java程序,来至于黄伟hellodba,下载地址在文章末尾

Oracle wrap加密 和 unwrap解密过程! - 第1张  | Jerry大数据之路

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL