1、创建程序包

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;
/

2.创建解密程序

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;
/
3.获取APPS密码

--取得APPS密码密文
select encrypted_foundation_password from apps.fnd_user_view where user_name='GUEST';
得到一长串加密的APPS密码。

--取得APPS密码明文
将加密的APPS密码放在如下SQL中的第二个参数,得到明文密码。

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐