1、建立加解密JAVA封装PL/SQL package。

加密过程:明文+密钥+加密函数=〉密文

oracle.apps.fnd.security.WebSessionManagerProc.encrypt(java.lang.String,java.lang.String) return java.lang.String

第1个参数:密钥;第2个参数:明文 =〉返回:密文

解密过程:密文+密钥+解密函数=〉明文

oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String

第1个参数:密钥;第2个参数:密文 =〉返回:明文

 

CREATE OR REPLACE package APPS.cux_fnd_web_sec authid current_user as

    --加密函数
    function encrypt(key in varchar2, value in varchar2) return varchar2;

   --解密函数
    function decrypt(key in varchar2, value in varchar2) return varchar2;
end;
/

CREATE OR REPLACE package body APPS.cux_fnd_web_sec as    

  function encrypt(key in varchar2, value in varchar2) return varchar2     as language java      name'oracle.apps.fnd.security.WebSessionManagerProc.encrypt(java.lang.String,java.lang.String) return java.lang.String';

        function decrypt(key in varchar2, value in varchar2) return varchar2     as language java name'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';

end; /

 

2、获取EBS数据用户APPS密码。

--取得APPS密文

select encrypted_foundation_password
from apps.fnd_user_view
where user_name='GUEST';

密文:ZG6EBD472D1208B0CDC78D7EC7730F9B249496F825E761BA3EB2FEBB54F6915FADA757EF4558CF438CF55D23FE32BE0BE52E

 

--取得APPS明文

select apps.cux_fnd_web_sec.decrypt('GUEST/ORACLE',
'ZG6EBD472D1208B0CDC78D7EC7730F9B249496F825E761BA3EB2FEBB54F6915FADA757EF4558CF438CF55D23FE32BE0BE52E') pwd
from dual;

明文:APPS

 

3、获得EBS SYSADMIN用户密码。

前提是要有APPS密码,这里设置的密码是:APPS。

--获得SYSADMIN密文

select encrypted_user_password
from fnd_user
where 1=1
and user_name ='SYSADMIN';

密文:ZHF57EAF37B1936C56755B134DE7C83AE40CADDD4AA83B1D7455E5533DC041773B494D2AA04644FB5A514E5C5614F3C87888

 

--获得SYSADMIN明文

select cux_fnd_web_sec.decrypt('APPS',
'ZHF57EAF37B1936C56755B134DE7C83AE40CADDD4AA83B1D7455E5533DC041773B494D2AA04644FB5A514E5C5614F3C87888') pwd
from dual;

明文:sysadmin

 

4、获得EBS数据库用户PO的密码。

前提是要有APPS密码,这里设置的密码是:APPS。

 

--获取PO密文

select encrypted_oracle_password
from fnd_oracle_userid
where 1=1
and oracle_username = 'PO';

密文:ZGFF10BC9C9BC3B052DACB39EDDEE2F82ACCEF1B42D909940B92108333707D1A1044D27A104F575B20A02104618F0CC241E4

 

--获取PO明文

select cux_fnd_web_sec.decrypt('APPS',
'ZGFF10BC9C9BC3B052DACB39EDDEE2F82ACCEF1B42D909940B92108333707D1A1044D27A104F575B20A02104618F0CC241E4') pwd
from dual;

明文:PO